.NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4 рдореЗрдВ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ NUnit рдЯреЗрд╕реНрдЯ


рд╣рд░ рдХреЛрдИ рд╢рд╛рдпрдж рдЖрд╡реЗрджрди рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдореЗрдВ рдЖрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдХрд┐рддрдиреА рдмрд╛рд░ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдерд╛?

рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4 рдХреЗ рддрд╣рдд рдЗрдХрдЯреНрдареЗ рд╣реБрдП рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдирд╛ рдерд╛, рдЬрд┐рд╕рдХреА рддрд▓рд╛рд╢ рдХреЗ рд▓рд┐рдП рдХрдИ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрднрд╡ рдХреЛ рдПрдХ рд╕рдВрдХрд▓рди рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рддрд╛рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧ рдЙрд╕ рд░реЗрдХ рд╕реЗ рдмрдЪ рд╕рдХреЗрдВ, рдЬрд┐рд╕реЗ рдореБрдЭреЗ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдерд╛ред

рдХрд╛рд░реНрдп рдХрд╛рдлреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдерд╛ - рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЙрдард╛рддреЗ рд╕рдордп рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рдХреЛ рдорд╛рдкрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдорд╕реМрджреЗ рдореЗрдВ, NUnit 2.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдФрд░ .NET рдореЗрдореЛрд░реА рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ 4.0 рдХреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред

рдбреЗрдЯрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ


рдЖрдЗрдП рдПрдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░реАрдХреНрд╖рдг рд╣реЛрддрд╛ рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Visual Studio 2010 рдореЗрдВ, рдПрдХ рдирдпрд╛ WPF рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рд▓рд╛рдпрдмреНрд░реЗрд░реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБ , рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП nunit.framework.dll рдЬреЛрдбрд╝реЗрдВ , рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП TestClasses рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред


рдЪрд┐рддреНрд░ред 1 рд╕рдВрджрд░реНрдн рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛


Fig.2 рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд▓реНрдк рдЦрд┐рдбрд╝рдХреА

рд╣рдо рдПрдХ рдПрдХрд▓ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдХреЛрдб рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

using System; using NUnit.Framework; using System.Windows.Controls; using System.Windows; namespace WpfClassLibrary { [TestFixture] public class MyTests { [Test] public void TestForProfiling() { TextBox textBlock = new TextBox(); textBlock.Text = "UIElement Test"; Assert.IsTrue(textBlock.Text.Length > 0); MessageBox.Show("Ready for Collect Snapshot..."); } } } 


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

рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рд╕реЗрдЯрдЕрдк


рдкрд░реАрдХреНрд╖рдг рдХреА рд░реВрдкрд░реЗрдЦрд╛ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ?

рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ NUnit рдХреЗ рдХрдВрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ nunut -sole.exe рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдирд┐рдореНрди рдкрде рдореЗрдВ рд╕реНрдерд┐рдд рдерд╛: C: \ Program Files (x86) \ TestDriven.NET 3 \ NUnit \ 2.4 \ )ред

рдЕрдм рдпрд╣ рддрд░реНрдХ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдпрд╣ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде "/?" рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдлрд╝рд╛рдЗрд▓ рд▓реЙрдиреНрдЪ рдкреНрд░рд╛рд░реВрдк рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

NUNIT-CONSOLE [inputfiles] [рд╡рд┐рдХрд▓реНрдк]

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

/ run = рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд╛ STR рдирд╛рдо

рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдг рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрд░реНрдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ! рдиреЗрдорд╕реНрдкреЗрд╕ рд╕рд╣рд┐рдд рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ред

рд╣рдо рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

C: \ Sandbox \ WpfClassLibrary \ WpfClassLibrary \ bin \ Debug \ WpfClassLibrary.dll /run=WpfClassLibrary.MyTests.TestForPipiling



рдЕрдВрдЬреАрд░ред 3 рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд┐рдВрдбреЛ

рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреА рдЧрдИ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ ...


VS2010 рдореЗрдВ NUnit рд░рди рдмрд┐рд▓реНрдб рдХреЛ рдХреИрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП?


рдЖрдЗрдП nunit -sole.exe рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рди рдХрд┐ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЛред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ System.BadImageFormatException рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
рдЕрдЦрдВрдбрд┐рдд рдЕрдкрд╡рд╛рдж:
System.BadImageFormatException: рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ 'C: \ Sandbox \ WpfClassLibrary \ WpfClassLibrary \ bin \ Debug \ WpfClassLibrary.dll рдпрд╛ рдЗрд╕рдХреА рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ред рдпрд╣ рдЕрд╕реЗрдВрдмрд▓реА рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд░рдирдЯрд╛рдЗрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирдП рд░рдирдЯрд╛рдЗрдо рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдлрд╝рд╛рдЗрд▓ рдирд╛рдо: 'C: \ Sandbox \ WpfClassLibrary \ WpfClassLibrary \ bin \ Debug \ WpfClassLibrary.dll'


рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ 4 рдХреЗ рддрд╣рдд рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рдо NUnit рдХреЗ рдХрдВрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рдлрд╝рд╛рдЗрд▓ nunit- рдХрдВрд╕реЛрд▓ред Exfig рдкрд╛рддреЗ рд╣реИрдВред рдореЗрд░реА рдХрд╛рд░ рдкрд░, рдпрд╣ рдпрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИ:
"C: \ Program Files (x86) \ TestDriven.NET 3 \ NUnit \ 2.4 \ nunit -sole.exe.config"

рд╣рдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реЗрдХреНрд╢рди рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╡рд░рдг рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ:
<!--
The startup section may be used to specify the runtime versions
supported in the order that they will be used if more than one
is present.
-->

* This source code was highlighted with Source Code Highlighter .

рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг 1 рдФрд░ 2 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рд▓реЗрдХрд┐рди 4 рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред
рд╣рдо рдЕрдкрдирд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЦрдВрдб рдмрдирд╛рддреЗ рд╣реИрдВ (рдпрд╛ рдореМрдЬреВрджрд╛ рдПрдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ 4 рд╡реЗрдВ рдврд╛рдВрдЪреЗ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓реЙрдиреНрдЪ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЬреЛрдбрд╝рдиреЗ рдХреА рд░реЗрдЦрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

< startup >
< supportedRuntime version ="v4.0.30319" />
</ startup >

* This source code was highlighted with Source Code Highlighter .


рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ - NUnit рдЕрдм .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4 рдХреЗ рддрд╣рдд рд╕рдВрдХрд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред


рдПрд╕рдЯреАрдП рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХреАрдХреГрдд TDD рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рд╕реЗ рд╕реАрдзреЗ рдЪрд▓рд╛рдиреЗ рдкрд░ рдпрд╣ рд▓реЙрдиреНрдЪ рдФрд░ рдареАрдХ рдЪрд▓рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк nunit.exe рдпрд╛ рдЙрд╕рдХреЗ рдХрдВрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг (рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ) рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА:
MyTestLib.MyTests.TestForProfiling:
System.InvalidOperationException: рдХреЙрд▓рд┐рдВрдЧ рдереНрд░реЗрдб STA рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ UI рдШрдЯрдХреЛрдВ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред



рдЕрдВрдЬреАрд░ред 4 NUnit рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐

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

WinForms рдпрд╛ ASP.NET рдХреЗ рд▓рд┐рдП рдЪрд▓ рд░рд╣реЗ рдкрд░реАрдХреНрд╖рдг WPF рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди, рдлрд┐рд░ рднреА, рдХрдИ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ OLE рдбреНрд░реИрдЧ-рдПрди-рдбреНрд░реЙрдк, рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдЖрджрд┐) рдЬрд┐рдиреНрд╣реЗрдВ STA рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред ред

NUnit 2.5 рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рднреА рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ NUnit рд╕рдВрд╕реНрдХрд░рдг 2.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рд╣реИрдВ, рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде WpfClassLibrary.dll.config рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
<? xml version ="1.0" encoding ="utf-8" ? >
< configuration >
< configSections >
< sectionGroup name ="NUnit" >
< section name ="TestRunner" type ="System.Configuration.NameValueSectionHandler" />
</ sectionGroup >
</ configSections >
< NUnit >
< TestRunner >
< add key ="ApartmentState" value ="STA" />
</ TestRunner >
</ NUnit >
</ configuration >


* This source code was highlighted with Source Code Highlighter .



рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ - рдкрд░реАрдХреНрд╖рдг рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдм рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ NUnit рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред



рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкрд░реАрдХреНрд╖рдг


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


Fig.5 рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЯреЗрд╕реНрдЯ

рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ - рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рднрд░реА рд╣реБрдИ рд╣реИ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╡рд┐рдзрд┐ рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдбрд┐рдмрдЧрд░ (рдкреНрд░реЛрдлрд╛рдЗрд▓рд░) рдХреЗ рддрд╣рдд рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ (TDD рдХреЗ рд▓рд┐рдП рдпрд╣ ProcessInvocation86.exe рд╣реИ)ред рдпрд╣ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдирд┐рд╖реНрдкрд╛рджрди рд╡рд┐рдХрд▓реНрдк рдХреБрдВрдЬреА рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рд╣реИ ...

рд╡рд╣ рд╕рдм рд╣реИ! рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА рдФрд░ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдкрд░ рд╕рдордп рдХреА рдмрдЪрдд рд╣реЛрдЧреАред

рд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдФрд░ рд░реВрдкрд░реЗрдЦрд╛!

Source: https://habr.com/ru/post/In128338/


All Articles