рдореИрдВрдиреЗ рдЕрднреА рдиреВрдирд┐рдЯ рдХрд╛ рдПрдХ рдирдпрд╛ рдХреНрд▓реЛрди рдкрдХрдбрд╝рд╛ рд╣реИ рдФрд░ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 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 рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рднреА рдорд┐рд▓рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИ рддреЛ рдореБрдЭреЗ рд╡рд╣рд╛рдВ рдЦреЛрджрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдирд┐рд░реНрдорд╛рдг рд╕реАрдЖрдИ рдореЗрдВ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реИ, рдпреЗ рд╢рд╛рдпрдж рдореЗрд░реЗ рдЕрдВрдд рдореЗрдВ рдХреЗрд╡рд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореБрджреНрджреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдбрд┐рдВрдЧ.рдПрдордбреА рдореЗрдВ рдХреБрдЫ рднреА рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд▓рдЧрд╛ рдХрд┐ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдереАред
рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рдкреБрд╖реНрдЯрд┐ рдХреА рд╣реИ рдХрд┐ TestCaseSourceCanAccessWorkDirectory
рдФрд░ CommandLineTests
рдЯреЗрд╕реНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдзрд╛рд╡рдХ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рд╕реНрддрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред @ рдиреВрдирд┐рдЯ/рдлреНрд░реЗрдорд╡рд░реНрдХ-рдЯреАрдо рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?
рджреВрд╕рд░реА рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЧрдВрдз рдкрд░реАрдХреНрд╖рдг рд╣реИред рдЗрд╕реЗ 5 рддрдХ рдЯрдХреНрдХрд░ рджреЗрдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдЕрддреАрдд рдореЗрдВ, рдореИрдВрдиреЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рд╡реЗ NUnit рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдЯреАрдо рдХреЗ рдЕрдиреНрдп рд╕рджрд╕реНрдпреЛрдВ рдиреЗ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдкреАрдЫреЗ рд╣рдЯ рдЧрдП рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХрд╛ рдмрди рдЧрдпрд╛ рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдзрд╛рд╡рдХ рдХреЗ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдЙрджрд╛рд╣рд░рдг рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХреЗ рддрд╣рдд рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред OTOH, рдпрджрд┐ рдЯреАрдо рдЪрд╛рд╣реЗ, рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдПрдбреЙрдкреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рддрд╣рдд рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдмрдирд╛ рд▓реЗрдВред
рдЖрдк рдЬреЛ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рддрд╣рдд рдПрдирдпреВрдиреАрдЯ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЙрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╛ рддреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд╣реИ рдпрд╛ рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рднреА рддрдп рд╣реЛред
рдПрдбреЗрдкреНрдЯрд░ рдХреЗ рдкрд╣рд▓реЗ рд▓реЗрдЦрдХ рдФрд░ рдврд╛рдВрдЪреЗ рдореЗрдВ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ NUnit рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдирд┐рдВрджрд╛ рдХреА рд╣реИред рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрднреА рднреА рдореЗрд░рд╛ рдпрд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИред рд╣реЗрдХ, рдореБрдЭреЗ рдпрд╣ рднреА рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд╕реАрдЖрдИ рдореЗрдВ рдврд╛рдВрдЪреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ !!!
рдирд┐рд░реНрдгрдп рдЬреЛ рднреА рд╣реЛ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ NUnit рдзрд╛рд╡рдХреЛрдВ (рдпрд╛ рддреЛ NUnitLite рдпрд╛ рдХрдВрд╕реЛрд▓ рд░рдирд░) рдХреЛ рд╡рд╛рдкрд╕ рднреЗрдЬрддреЗ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛, рдЬрдм рд╕рдорд╕реНрдпрд╛рдПрдБ рдЖрддреА рд╣реИрдВ рдЬреЛ рдПрдбреЗрдкреНрдЯрд░ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдПрдбреЗрдкреНрдЯрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдзрд╛рд╡рдХ рдХреЗ рдмрд░рд╛рдмрд░ рд░рд╣рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ рдПрдирдпреВрдиреАрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рддрд╣рдд рд╣реЛред
рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдмрд╛рд╣рд░ рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ: рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрдЯреМрддреА рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЛред
рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рдореИрдВ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╣ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ рдЬрдм рдореБрдЭреЗ рдХреЛрдИ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдорд┐рд▓рддреА рд╣реИ рдЬреЛ рдЙрд╕реА рдЕрднреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
рдЕрддреАрдд рдореЗрдВ рдпрд╣ рд░реАрд╢реЗрд░реНрдкрд░ рдХрд╛ рдбреЙрдЯрдХрд╡рд░ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рд▓рд╛рдЧрдд рдЫреЛрдЯреА рджреБрдХрд╛рдиреЛрдВ/рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрд╛рдЧрд▓ рд╣реИ рдЬрдм рдлреНрд░реА/рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ "рдЬреНрдпрд╛рджрд╛рддрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ"ред
рдПрдХреАрдХреГрдд рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ (рдореЗрд░реА рд░рд╛рдп рдореЗрдВ) рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рд╣рдореЗрдВ рдХрдВрд╕реЛрд▓ рд░рдирд░ (рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рд░рдирд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ рдЬреЛ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдареАрдХ рд╣реИ, рддреЛ рдмрд╕ рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░реЗрдВред
рдпрджрд┐ рдЖрдк рдврд╛рдВрдЪреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдПрдирдпреВрдиреАрдЯ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдзрд╛рд╡рдХ рдореЗрдВ рдорд┐рд╢реНрд░рдг рдХрд░рдирд╛ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЖрд░ #, рд╣рдорд╛рд░рд╛ рдЕрдкрдирд╛ рдПрдбрд╛рдкреНрдЯрд░) рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдзрд╛рд╡рдХреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдврд╛рдВрдЪрд╛ рдЕрд▓рдЧрд╛рд╡ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ, рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдиреВрдирд┐рдЯрд▓рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реАрдЖрдИ рдЪрд▓рд╛рддрд╛ рд╣реВрдВред рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЯреЗрд╕реНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдПрдирдпреВрдиреАрдЯ рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реАрдЖрдИ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреБрдЫ рднреА рдмреЗрдХрд╛рд░ рджрд┐рдЦрдиреЗ рдкрд░ рдиреВрдирд┐рдЯрд▓рд╛рдЗрдЯ рдпрд╛ рдиреВрдирд┐рдЯ 3-рдХрдВрд╕реЛрд▓ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░рд┐рд▓реАрдЬ рд╕реЗ рдиреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдХреНрд╖рд╛рдВрд╢ рд╣реИред
рд╣рдореЗрдВ рд╕рднреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡рддрдГ NUnitLite рдХреЗ рд╕рд╛рде CI рдХреИрдирдирд┐рдХрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдХрдВрд╕реЛрд▓, VSTest рдПрдбреЗрдкреНрдЯрд░ рдФрд░ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП UWP рд░рдирд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╕реАрдЖрдИ рдареЛрд╕ рд╣реИ, рдЯреЗрд╕реНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░, рд░реАрд╢реЗрд░реНрдкрд░, рдПрдирдХреНрд░рдВрдЪ рдФрд░ рд╣рдорд╛рд░реА рд╕реАрдЖрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмреАрдЪ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рдХрд╣рдирд╛ рдХрд┐ рдЗрди-рдЖрдИрдбреАрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рдзрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдФрд░ рдЭреВрдард╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░рд╛ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рднреА рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдЖрджрд░реНрд╢ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ:
.\build.ps1 -t test
рдЪрд▓рд╛рдПрдБ рдХрд┐ рдкрд╛рд╕ рдФрд░ рд╡рд┐рдлрд▓рддрд╛рдПрдБ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИрдВрджреБрд░реНрд▓рдн рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдЬрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдг рдзрд╛рд╡рдХ-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдзрд╛рд╡рдХ-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдмрдирд╛рдирд╛ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реИред рдпрд╣ ILMerge рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рднреА рдмрджрддрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ ReSharper рдФрд░ NCrunch рдЫрд╛рдпрд╛ рдкреНрд░рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓рд╛ рдмрдирд╛рдпрд╛ рд╣реИред
@aolszowka рдореИрдВ рдЖрдкрдХреА рдмрд╛рдд рд╕реЗ резрежреж% рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╣рдо рдЬреЛ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдпреЛрдЧрджрд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдФрд░ рдЕрджреНрдпрддрд┐рдд рд░рдЦрддреЗ рд╣реБрдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рдордп рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
@ jnm2 рдореБрдЭреЗ рдЖрдкрдХрд╛ "рд╡рд┐рд╣рд┐рдд" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд╕рдВрдж рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЯреЗрд╕реНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред
рдпрд╣ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧреА рд╣реИ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдиреВрдирд┐рдЯ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдкрд░ рдХрдм рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реИред
рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЬреЛ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЪреАрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рдЖрдИрдПрдордУ рдЕрд▓рдЧ рдкреНрд░рдгрд╛рд▓реА рдФрд░ рд╢рд╛рдпрдж рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред
рдпрд╣ рдореВрд▓ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдПрдХреНрд╕рдПрдордПрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддреЗ рд╕рдордп, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ TestContext.WorkDirectory
рдХреЛ C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE
рдмрджрд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛:
рдХреЙрд▓ рд╕реНрдЯреИрдХ:
> 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
рд╕реНрдерд┐рд░ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╕реНрдерд┐рддрд┐ рд╣реИ:
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╡рд░реНрддреА рд╕рд╣рд┐рдд рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ (!) рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд░реНрдХрдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рд╣реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП [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 рд╣реЛ)ред
рдирд╣реАрдВ, рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╕рдорд╛рдкрдиред