рд╣реИрд▓реЛ, рдореИрдВрдиреЗ dotnet nunit
рд╕рд╛рде рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдЬрдм рдореИрдВ Unit.ConsoleRunner.3.8.0 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред
рдбреЙрдЯрдиреЗрдЯ рдПрд╕рдбреАрдХреЗ рд╕рдВрд╕реНрдХрд░рдг 2.1.4
рдирдореВрдирд╛ рд╕рдВрдЧреНрд░рд╣ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ: https://github.com/VictorioBerra/nunit3-errors
рдХреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ./build.ps1 рдЪрд▓рд╛рдПрдБред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдРрд╕рд╛ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ NuGet рд╕реЗ Unit.ConsoleRunner.3.8.0 рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд▓реЗрдЧрд╛ред рддреЛ рдЬрдм рдЖрдк рдЗрд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдпрд╛ рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдХреЗрдХ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕реЗ рдкрд╛рд╡рд░рд╢реЗрд▓ рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
.\tools\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe .\tests\Demo.Tests\bin\Release\netcoreapp2.0\Demo.Tests.dll
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ .NET Framework рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╡рд┐рдкрд░реАрдд, .NET рдХреЛрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ nunit.framework.dll рдХреЛ рдмрд┐рд▓реНрдб рдкрд░ bin\{configuration}\{tfm}
рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ dotnet publish
рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЗрдХ рдХреЗ рд▓рд┐рдП, рдпрд╣ DotNetCorePublish
рдпрд╛ рджреЗрдЦреЗрдВ рдХрд┐ NUnit рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ ред рдлрд┐рд░ рдЖрдк bin\{configuration}\{tfm}\publish
рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рдкрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред
dotnet test
\publish
рдкрде рд╕реЗ dotnet vstest
рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рди рдХрд░рддрд╛ рд╣реИред
рджреЛрдиреЛрдВ dotnet vstest
рдФрд░ NUnit рдХрдВрд╕реЛрд▓ рдЕрд╕реЗрдВрдмрд▓реА рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдирд╣реАрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЙрд╕реА рддрд░рд╣ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреИрд╕реЗ рдЖрдк рд╕реНрд╡рдпрдВ-рдирд┐рд╖реНрдкрд╛рджрди рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд░рд╣реЗ рдереЗред
рдЕрд╣реНрд╣реНрд╣реНрд╣ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреНрдЮрд╛рдирд╡рд░реНрдзрдХ рдФрд░ рдорджрджрдЧрд╛рд░ рд╣реИ, рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдпрджрд┐ рдЖрдк рдХреЗрдХ рдкрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рд╡реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддреЗ рд╣реБрдП рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ: https://cakebuild.net/api/Cake.Common.Tools.NUnit/NUnit3Aliases/5A473496
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдФрд░ рдЬреЛ рдЗрд╕рдореЗрдВ рдЯрдХрд░рд╛рдПрдЧрд╛ рд╡рд╣ рдЗрд╕реЗ рджреЗрдЦреЗрдЧрд╛ рдФрд░ рдХреБрдЫ рд╕рдордп рдмрдЪрд╛рдПрдЧрд╛ред
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдЬрд╛рдКрдВ: NUnit.ConsoleRunner рдЕрднреА рддрдХ .NET рдХреЛрд░ рдкрд░ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИред NUnitLite рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ NUnit рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ: https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard
рдЙрджрд╛рд╣рд░рдг: https://github.com/jnm2/ApiContractGenerator/blob/aa3c085fdb9c978b252b630187325d6eeb504235/build.cake#L21 -L25
@ jnm2 рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ? рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХреА рдЧрдИ рд╡рд┐рдХреА рд╕реЗ:
dotnet рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдПрдбреЗрдкреНрдЯрд░ рдкрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП NUnit рдЕрднреА рддрдХ TestResults.xml рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдерд╛ рддреЛ рдпрд╣ рд╕реНрдерд┐рддрд┐ рдереА:
https://github.com/jnm2/Cake.SqlServer/blob/ed6093e268114ef640851414e64aabec49d284e8/build.cake#L114 -L134
try
{
DotNetCoreTest("src/Tests/Tests.csproj", new DotNetCoreTestSettings
{
Configuration = configuration,
NoBuild = true,
Logger = "trx",
ArgumentCustomization = a => a.AppendSwitchQuoted("--results-directory", tempDirectory)
});
}
finally
{
if (parameters.IsRunningOnAppVeyor)
{
// dotnet test cannot do more than one target framework per TRX file
// AppVeyor seems to ignore all but the first TRX uploadтАУ perhaps because the test names are identical
// https://github.com/Microsoft/vstest/issues/880#issuecomment-341912021
foreach (var testResultsFile in GetFiles(tempDirectory + "/**/*.trx"))
AppVeyor.UploadTestResults(testResultsFile, AppVeyorTestResultsType.MSTest);
}
}
рдореИрдВ рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ .NET рдХреЛрд░ 2.0 рдкрд░ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ NUnit.Console рдирд╣реАрдВ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдкреАрдЖрд░ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЙрд╕реА рддрд░рд╣ рдЖрдЧреЗ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭреЗ рдкреАрдЯрддрд╛ рдирд╣реАрдВ рд╣реИред
рдирдорд╕реНрддреЗ, рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
https://github.com/nunit/nunit-console/issues/475 рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕реВрддреНрд░ рд╣реИред
@orihomie рдпрд╣ рдПрдХ рдмрдВрдж рдореБрджреНрджрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рджреВрд╕рд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
@CharliePoole рдирд╣реАрдВ, рдЬрдм рдореИрдВ *\NUnit.Console-3.6.1\nunit3-console.exe рджреНрд╡рд╛рд░рд╛ .netcore рдкрд░реАрдХреНрд╖рдг рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛, рддрдм рдореИрдВрдиреЗ рдЕрдкрдиреА рдмрд┐рд▓реНрдб рдпреЛрдЬрдирд╛ рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдореБрд▓рд╛рдХрд╛рдд рдХреА рдФрд░ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рд╛ рдЬреЛ рдореБрдЭреЗ рдпрд╣реАрдВ рд▓реЗ рдЧрдпрд╛
@orihomie рдЖрдк рдЕрднреА рддрдХ .NET Core рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк dotnet test
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard
https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-nunit
@orihomie рдХрдВрд╕реЛрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрдЯ рдХреЛрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдЕрдиреБрд╡рд░реНрддреА
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВ рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ .NET рдХреЛрд░ 2.0 рдкрд░ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ NUnit.Console рдирд╣реАрдВ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдкреАрдЖрд░ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЙрд╕реА рддрд░рд╣ рдЖрдЧреЗ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭреЗ рдкреАрдЯрддрд╛ рдирд╣реАрдВ рд╣реИред