Nunit: рдиреНрдпреВ рдХреНрд▓реЛрди рдХреЗ рдмрд╛рдж nunit.framework.tests рдореЗрдВ рд╡рд┐рдлрд▓ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдЬреВрди 2018  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: nunit/nunit

рдореИрдВрдиреЗ рдЕрднреА рдиреВрдирд┐рдЯ рдХрд╛ рдПрдХ рдирдпрд╛ рдХреНрд▓реЛрди рдкрдХрдбрд╝рд╛ рд╣реИ рдФрд░ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2017 (рд╕рдореБрджрд╛рдп 15.7.4) рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЛ рдирд╡реАрдирддрдо рдПрдирдпреВрдиреАрдЯ 3 рдЯреЗрд╕реНрдЯ рдПрдбрд╛рдкреНрдЯрд░ (рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд░рди рдЯреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде 3.10) рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ 10 рдкреНрд░реЛрдлреЗрд╢рдирд▓ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ "рдбреАрдмрдЧ-рдПрдиреАрд╕реАрдкреАрдпреВ" рдЪреБрдирд╛ рд╣реИред "рдФрд░ рд╣рд┐рдЯ рдмрд┐рд▓реНрдбред

BUILDING.md рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ nunit.framework.tests-* рдФрд░ nunitlite.tests-* рд╕реЗ рдирд╣реАрдВ рдЖрддреА рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЧреЗрдЯ рдХреЗ рдмрд╛рд╣рд░ рдореБрдЭреЗ nunit.framework.tests-* рд╕реЗ 2 рд╡рд┐рдлрд▓рддрд╛рдПрдБ рдорд┐рд▓рддреА рд╣реИрдВ

рдкрд╣рд▓реА рддреНрд░реБрдЯрд┐:

Test Name:  TestCaseSourceCanAccessWorkDirectory("C:\\Users\\ace.olszowka\\source\\nunit\\bin\\Debug\\net20")
Test FullName:  NUnit.Framework.TestContextTests.TestCaseSourceCanAccessWorkDirectory("C:\\Users\\ace.olszowka\\source\\nunit\\bin\\Debug\\net20")
Test Source:    C:\Users\ace.olszowka\source\nunit\src\NUnitFramework\tests\TestContextTests.cs : line 110
Test Outcome:   Failed
Test Duration:  0:00:00.001

Result StackTrace:  at NUnit.Framework.TestContextTests.TestCaseSourceCanAccessWorkDirectory(String workDirectory) in C:\Users\ace.olszowka\source\nunit\src\NUnitFramework\tests\TestContextTests.cs:line 112
Result Message: 
Expected string length 34 but was 50. Strings differ at index 34.
  Expected: "C:\\Users\\ace.olszowka\\source\\nunit"
  But was:  "C:\\Users\\ace.olszowka\\source\\nunit\\bin\\Debug\\net20"
  -------------------------------------------------^

рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╕рдВрднрд╡ рдерд╛, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпреЗ рдорд╛рди рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ( _workDirectory рдФрд░ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рджреЛрдиреЛрдВ TestContext.CurrentContext.WorkDirectory ) рдореЗрд░рд╛ рдПрдХрдорд╛рддреНрд░ рдЕрдиреБрдорд╛рди рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ, рд╢рд╛рдпрдж рдореЗрд░реЗ рдЕрдВрдд рдореЗрдВ рдЦрд░рд╛рдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдХрд╛рд░рдг?

рджреВрд╕рд░реА рддреНрд░реБрдЯрд┐:

Test Name:  StackTracesAreFiltered("WarningInBeginInvoke",4)
Test FullName:  NUnit.Framework.Assertions.WarningTests.StackTracesAreFiltered("WarningInBeginInvoke",4)
Test Source:    C:\Users\ace.olszowka\source\nunit\src\NUnitFramework\tests\Assertions\WarningTests.cs : line 292
Test Outcome:   Failed
Test Duration:  0:00:00.004

Result StackTrace:  at NUnit.Framework.Assertions.WarningTests.StackTracesAreFiltered(String methodName, Int32 maxLineCount) in C:\Users\ace.olszowka\source\nunit\src\NUnitFramework\tests\Assertions\WarningTests.cs:line 310
Result Message: 
Multiple failures or warnings in test:
  1) (Warning message)
  2) Expected the number of lines to be no more than 4, but it was 5:

 1. at NUnit.TestData.WarningFixture.<>c__DisplayClass45_0.<WarningInBeginInvoke>b__0()
 2. at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
 3. at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
 4. at System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.ThreadPoolCallBack(Object o)
 5. at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
(end)

рдореИрдВ рдЗрд╕рдореЗрдВ рдЦреЛ рдЧрдпрд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ; рд▓реЗрдХрд┐рди рдореЗрд░реА рд╕реАрдорд┐рдд рд╕рдордЭ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдХреЙрд▓ рд╕реНрдЯреИрдХ рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рдкреНрд░рддрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╣рд╛рд▓ рдХреЗ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдореБрдЭреЗ NUnitLite.Tests.CommandLineTests рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рднреА рдорд┐рд▓рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИ рддреЛ рдореБрдЭреЗ рд╡рд╣рд╛рдВ рдЦреЛрджрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдирд┐рд░реНрдорд╛рдг рд╕реАрдЖрдИ рдореЗрдВ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реИ, рдпреЗ рд╢рд╛рдпрдж рдореЗрд░реЗ рдЕрдВрдд рдореЗрдВ рдХреЗрд╡рд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореБрджреНрджреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдбрд┐рдВрдЧ.рдПрдордбреА рдореЗрдВ рдХреБрдЫ рднреА рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд▓рдЧрд╛ рдХрд┐ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдереАред

рд╕рднреА 31 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рдкреБрд╖реНрдЯрд┐ рдХреА рд╣реИ рдХрд┐ TestCaseSourceCanAccessWorkDirectory рдФрд░ CommandLineTests рдЯреЗрд╕реНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдзрд╛рд╡рдХ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рд╕реНрддрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред @ рдиреВрдирд┐рдЯ/рдлреНрд░реЗрдорд╡рд░реНрдХ-рдЯреАрдо рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рджреВрд╕рд░реА рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЧрдВрдз рдкрд░реАрдХреНрд╖рдг рд╣реИред рдЗрд╕реЗ 5 рддрдХ рдЯрдХреНрдХрд░ рджреЗрдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдЕрддреАрдд рдореЗрдВ, рдореИрдВрдиреЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рд╡реЗ NUnit рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдЯреАрдо рдХреЗ рдЕрдиреНрдп рд╕рджрд╕реНрдпреЛрдВ рдиреЗ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдкреАрдЫреЗ рд╣рдЯ рдЧрдП рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХрд╛ рдмрди рдЧрдпрд╛ рд╣реИред

рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдзрд╛рд╡рдХ рдХреЗ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдЙрджрд╛рд╣рд░рдг рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХреЗ рддрд╣рдд рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред OTOH, рдпрджрд┐ рдЯреАрдо рдЪрд╛рд╣реЗ, рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдПрдбреЙрдкреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рддрд╣рдд рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдмрдирд╛ рд▓реЗрдВред

рдЖрдк рдЬреЛ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рддрд╣рдд рдПрдирдпреВрдиреАрдЯ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЙрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╛ рддреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд╣реИ рдпрд╛ рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рднреА рддрдп рд╣реЛред

рдПрдбреЗрдкреНрдЯрд░ рдХреЗ рдкрд╣рд▓реЗ рд▓реЗрдЦрдХ рдФрд░ рдврд╛рдВрдЪреЗ рдореЗрдВ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ NUnit рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдирд┐рдВрджрд╛ рдХреА рд╣реИред рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрднреА рднреА рдореЗрд░рд╛ рдпрд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИред рд╣реЗрдХ, рдореБрдЭреЗ рдпрд╣ рднреА рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд╕реАрдЖрдИ рдореЗрдВ рдврд╛рдВрдЪреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ !!!

рдирд┐рд░реНрдгрдп рдЬреЛ рднреА рд╣реЛ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ NUnit рдзрд╛рд╡рдХреЛрдВ (рдпрд╛ рддреЛ NUnitLite рдпрд╛ рдХрдВрд╕реЛрд▓ рд░рдирд░) рдХреЛ рд╡рд╛рдкрд╕ рднреЗрдЬрддреЗ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛, рдЬрдм рд╕рдорд╕реНрдпрд╛рдПрдБ рдЖрддреА рд╣реИрдВ рдЬреЛ рдПрдбреЗрдкреНрдЯрд░ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдПрдбреЗрдкреНрдЯрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдзрд╛рд╡рдХ рдХреЗ рдмрд░рд╛рдмрд░ рд░рд╣рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ рдПрдирдпреВрдиреАрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рддрд╣рдд рд╣реЛред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдмрд╛рд╣рд░ рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ: рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрдЯреМрддреА рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЛред

рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рдореИрдВ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╣ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ рдЬрдм рдореБрдЭреЗ рдХреЛрдИ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдорд┐рд▓рддреА рд╣реИ рдЬреЛ рдЙрд╕реА рдЕрднреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

  1. рдХреЛрдб рдХреНрд▓реЛрди рдХрд░реЗрдВ
  2. рдкрдврд╝реЗрдВ README.md/BUILD.md/HACKING.md
  3. рдмрд┐рд▓реНрдб рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (рдмрд┐рдирд╛ рдмрджрд▓рд╛рд╡ рдХреЗ)
  4. рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдПрдВ (рдПрдХреАрдХреГрдд рд░рдирд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред
  5. рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддреЛ рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред

рдЕрддреАрдд рдореЗрдВ рдпрд╣ рд░реАрд╢реЗрд░реНрдкрд░ рдХрд╛ рдбреЙрдЯрдХрд╡рд░ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рд▓рд╛рдЧрдд рдЫреЛрдЯреА рджреБрдХрд╛рдиреЛрдВ/рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрд╛рдЧрд▓ рд╣реИ рдЬрдм рдлреНрд░реА/рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ "рдЬреНрдпрд╛рджрд╛рддрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ"ред

рдПрдХреАрдХреГрдд рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ (рдореЗрд░реА рд░рд╛рдп рдореЗрдВ) рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рд╣рдореЗрдВ рдХрдВрд╕реЛрд▓ рд░рдирд░ (рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рд░рдирд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ рдЬреЛ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдареАрдХ рд╣реИ, рддреЛ рдмрд╕ рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░реЗрдВред

рдпрджрд┐ рдЖрдк рдврд╛рдВрдЪреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдПрдирдпреВрдиреАрдЯ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдзрд╛рд╡рдХ рдореЗрдВ рдорд┐рд╢реНрд░рдг рдХрд░рдирд╛ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЖрд░ #, рд╣рдорд╛рд░рд╛ рдЕрдкрдирд╛ рдПрдбрд╛рдкреНрдЯрд░) рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдзрд╛рд╡рдХреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдврд╛рдВрдЪрд╛ рдЕрд▓рдЧрд╛рд╡ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ, рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдиреВрдирд┐рдЯрд▓рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реАрдЖрдИ рдЪрд▓рд╛рддрд╛ рд╣реВрдВред рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЯреЗрд╕реНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдПрдирдпреВрдиреАрдЯ рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реАрдЖрдИ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреБрдЫ рднреА рдмреЗрдХрд╛рд░ рджрд┐рдЦрдиреЗ рдкрд░ рдиреВрдирд┐рдЯрд▓рд╛рдЗрдЯ рдпрд╛ рдиреВрдирд┐рдЯ 3-рдХрдВрд╕реЛрд▓ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░рд┐рд▓реАрдЬ рд╕реЗ рдиреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдХреНрд╖рд╛рдВрд╢ рд╣реИред

рд╣рдореЗрдВ рд╕рднреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡рддрдГ NUnitLite рдХреЗ рд╕рд╛рде CI рдХреИрдирдирд┐рдХрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдХрдВрд╕реЛрд▓, VSTest рдПрдбреЗрдкреНрдЯрд░ рдФрд░ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП UWP рд░рдирд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╕реАрдЖрдИ рдареЛрд╕ рд╣реИ, рдЯреЗрд╕реНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░, рд░реАрд╢реЗрд░реНрдкрд░, рдПрдирдХреНрд░рдВрдЪ рдФрд░ рд╣рдорд╛рд░реА рд╕реАрдЖрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмреАрдЪ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рдХрд╣рдирд╛ рдХрд┐ рдЗрди-рдЖрдИрдбреАрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рдзрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдФрд░ рдЭреВрдард╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░рд╛ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рднреА рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдЖрджрд░реНрд╢ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ:

  1. рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдБ рдпрд╛ рдирдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВ
  2. рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╕рдордп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рдкрд┐рди рдХрд░реЗрдВ (рдФрд░ рднреА рдмреЗрд╣рддрд░, рдирд┐рд░рдВрддрд░ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░реЗрдВ)
  3. рдПрдХ рдмрджрд▓рд╛рд╡ рд▓рд╛рдЧреВ рдХрд░реЗрдВ
  4. рдЧрд┐рдЯ рдХрдорд┐рдЯ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .\build.ps1 -t test рдЪрд▓рд╛рдПрдБ рдХрд┐ рдкрд╛рд╕ рдФрд░ рд╡рд┐рдлрд▓рддрд╛рдПрдБ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИрдВ
  5. рдпрджрд┐ рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ, рддреЛ рдЙрди рдкреНрд░рднрд╛рд╡рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдвреВрдВрдвреЗрдВ рдФрд░ рдкрд┐рди рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдФрд░ рдЪрд░рдг 3 рдкрд░ рдЬрд╛рдПрдВ

рджреБрд░реНрд▓рдн рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдЬрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдг рдзрд╛рд╡рдХ-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдзрд╛рд╡рдХ-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдмрдирд╛рдирд╛ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реИред рдпрд╣ ILMerge рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рднреА рдмрджрддрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ ReSharper рдФрд░ NCrunch рдЫрд╛рдпрд╛ рдкреНрд░рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓рд╛ рдмрдирд╛рдпрд╛ рд╣реИред

@aolszowka рдореИрдВ рдЖрдкрдХреА рдмрд╛рдд рд╕реЗ резрежреж% рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╣рдо рдЬреЛ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдпреЛрдЧрджрд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдФрд░ рдЕрджреНрдпрддрд┐рдд рд░рдЦрддреЗ рд╣реБрдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рдордп рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@ jnm2 рдореБрдЭреЗ рдЖрдкрдХрд╛ "рд╡рд┐рд╣рд┐рдд" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд╕рдВрдж рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЯреЗрд╕реНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред

рдпрд╣ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧреА рд╣реИ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдиреВрдирд┐рдЯ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдкрд░ рдХрдм рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реИред

рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЬреЛ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЪреАрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рдЖрдИрдПрдордУ рдЕрд▓рдЧ рдкреНрд░рдгрд╛рд▓реА рдФрд░ рд╢рд╛рдпрдж рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред

рдпрд╣ рдореВрд▓ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдПрдХреНрд╕рдПрдордПрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддреЗ рд╕рдордп, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ TestContext.WorkDirectory рдХреЛ C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE рдмрджрд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛:

https://github.com/nunit/nunit/blob/81fcc7c047c09fcb5a86989d0829716ca7d08e1e/src/NUnitFramework/framework/Api/DefaultTestAssemblyBuilder.cs#L137

рдХреЙрд▓ рд╕реНрдЯреИрдХ:

>   nunit.framework.dll!NUnit.Framework.Api.DefaultTestAssemblyBuilder.Build(System.Reflection.Assembly assembly, string suiteName, System.Collections.Generic.IDictionary<string, object> options) Line 137    C#
    nunit.framework.dll!NUnit.Framework.Api.DefaultTestAssemblyBuilder.Build(string assemblyNameOrPath, System.Collections.Generic.IDictionary<string, object> options) Line 114    C#
    nunit.framework.dll!NUnit.Framework.Api.NUnitTestAssemblyRunner.Load(string assemblyNameOrPath, System.Collections.Generic.IDictionary<string, object> settings) Line 154   C#
    nunit.framework.dll!NUnit.Framework.Api.FrameworkController.LoadTests() Line 204    C#

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ TestContext.WorkDirectory рд╕реНрдерд┐рд░ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╕реНрдерд┐рддрд┐ рд╣реИ:

https://github.com/nunit/nunit/blob/81fcc7c047c09fcb5a86989d0829716ca7d08e1e/src/NUnitFramework/framework/TestContext.cs#L96 -L101

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╡рд░реНрддреА рд╕рд╣рд┐рдд рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ (!) рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд░реНрдХрдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рд╣реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП [NonParallelizable] рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдерд╛ред рдЗрд╕реЗ рд▓реЗрдХрд░ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╡рд┐рд╡рд╛рдж рд╣реИред

рдЧреИрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдХрдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рдПрдирдпреВрдиреАрдЯ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ), рдПрдХ рдЙрдЪрд┐рдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдЬреЛ рдЙрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЕрд╕рдлрд▓ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдпрд╣ рд╕рдм рдЙрд╕ рдХреНрд░рдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ NUnit рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред

рдЗрд░рд╛рджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдПрдХ рдмрд╛рд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрдЫ рдФрд░ рдпреВрдПрд╕ рдПрдХ рдмрдЧред

рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?

@CharliePoole рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рдХреАрдХрдд рдмрдирд╛рдПрдВрдЧреЗ? рд╣рдо рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░реАрдХреНрд╖рдг рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрдВрдЯреНрд░реЛрд▓рд░, рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рд░рди рдХреЗ рднреАрддрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, WorkDirectory рдХрд╛ рдЕрд░реНрде рд╣реИ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд░рди рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХреА рдЧрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред" рддреЛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рд╕рд╣реА рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЙрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рд╢рд╛рдпрдж рдЗрд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред ЁЯШЬ

рдПрдХ рдЪреБрдЯрдХреА рдореЗрдВ, рд╣рдо рдЗрд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред <ducks>

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ- рдЯреНрд░реИрдХ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЫреЛрдбрд╝ рджреЗрдВ? рдЗрд╕ рддрд░рд╣ рдпрд╣ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ рдФрд░ рдореБрдЭреЗ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ DefaultTestAssemblyBuilder рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП!

рдРрд╕реЗ NUnit рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЗрд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

@oznetmaster рдореИрдВрдиреЗ рдЦреЛрдЬрд╛ рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА NUnit рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рдЗрд╕реЗ рдЧрд▓рддреА рд╕реЗ рдЫреЛрдбрд╝рдХрд░ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдХрд╛рдо рд╣реИ?

рдореБрдЭреЗ рдЕрдкрдиреЗ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдЦреЛрдЬрдирд╛ рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ рдЬреЛ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ рдЙрд╕реЗ рдХрд░рдХреЗ рдореИрдВрдиреЗ рдЕрдкрдиреЗ CF рдмрд┐рд▓реНрдб рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдареАрдХ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдХреЗрд╡рд▓ рдорд╛рди рдХреЛ рдПрдХ рдмрд╛рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рд╢реВрдиреНрдп рд╣реЛрдиреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред

                if (options.ContainsKey (FrameworkPackageSettings.WorkDirectory))
                    TestContext.DefaultWorkDirectory = options[FrameworkPackageSettings.WorkDirectory] as string;
                else
                    if (TestContext.DefaultWorkDirectory == null)
                        TestContext.DefaultWorkDirectory = Directory.GetCurrentDirectory ();

рдкрд░реАрдХреНрд╖рдг рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдереЗ рд╡реЗ рдереЗ рдЬреЛ DefaultTestAssemblyBuilder.Build рдХреЛ рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╣рддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ FrameworkPackageSettings.WorkDirectory рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рд╕реЗ TestContext.DefaultWorkDirectory рдХреЛ CurrentDirectory рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдерд╛ рдХрд┐ рдЕрдЧрд░ рд╡рд░реНрдХрдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХрднреА рднреА рдмрд╣рд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╡рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдкрдирд╛рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛?

рдореЗрд░реЗ рд▓рд┐рдпреЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдореЗрд░рд╛ CF рдмрд┐рд▓реНрдб 100% NUnit рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

@OmicronPersei рдпрджрд┐ рдЖрдк рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдЖрд╕-рдкрд╛рд╕ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк @oznetmaster рдХреЛ рдПрдХ рд╕реНрдкрд┐рди

рд╣рд╛рдБ! рдЖрдЬ рд╢рд╛рдо рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрдЧ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ nunit3-vs-adapter#528 рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдХреЗ рдХрд╛рд░рдгред рд╡рд┐рдЪрд╛рд░?

@OmicronPersei рдУрд╣ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдХреНрдпрд╛ WorkDirectory рд╕реЗрдЯ рдХреЗ рд╕рд╛рде .runsettings рдХрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛?

рдареАрдХ рд╣реИ рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред TestCaseSourceCanAccessWorkDirectory рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди StackTracesAreFiltered рдУрдкреА рдореЗрдВ рдПрдХ рд╣реА рд╕рдВрджреЗрд╢/рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ StackTracesAreFiltered рдХреЛ 5 рд╕реЗ рдЯрдХрд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рдЧрдВрдз рдкрд░реАрдХреНрд╖рдг рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдирдП рдлреНрд░реЗрдо рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

TestCaseSourceCanAccessWorkDirectory рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛, рдпрд╛ рд╡рд╣ рдЕрднреА рднреА рдЗрд╕ рдкреАрдЖрд░ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реИ?

ForTestCaseCanAccessWorkDirectory, рдХреНрдпрд╛ @oznetmaster рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЗрд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╣рдореЗрдВ рдЖрдЧреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреАред

рдореИрдВ рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдкреНрд░рд╢реНрди рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдореЗрд░реЗ рд▓рд┐рдП рдЧреБрдЬрд░рддрд╛ рд╣реИред

рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ, рдХреЛрдИ рдФрд░ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдореБрдЭреЗ рдЫреЛрдЯреЗ рдкреАрдЖрд░ рднреА рдкрд╕рдВрдж рд╣реИрдВред

рдмрд╕ рдШрд░ рдХреА рд╕рдлрд╛рдИ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ; рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдЦреБрд▓рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? (рднрд▓реЗ рд╣реА рдпрд╣ WONTFIX рд╣реЛ)ред

рдирд╣реАрдВ, рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╕рдорд╛рдкрдиред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ChrisMaddock picture ChrisMaddock  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DustinKingen picture DustinKingen  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jnm2 picture jnm2  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DavidKlempfner picture DavidKlempfner  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Prodigio picture Prodigio  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ