Note
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãµã€ã³ã€ã³ãŸãã¯ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®èšäºã¯: âïž .NET 6 SDK 以éã®ããŒãžã§ã³ã«é©çšãããŸã
åå
dotnet test - VSTest ã§åäœãã¹ããå®è¡ããããã«äœ¿çšããããã¹ã ãã©ã€ããŒã.NETããŸãã
æŠèŠ
dotnet test [<PROJECT> | <SOLUTION> | <DIRECTORY> | <DLL> | <EXE>]
[--test-adapter-path <ADAPTER_PATH>]
[-a|--arch <ARCHITECTURE>]
[--artifacts-path <ARTIFACTS_DIR>]
[--blame]
[--blame-crash]
[--blame-crash-dump-type <DUMP_TYPE>]
[--blame-crash-collect-always]
[--blame-hang]
[--blame-hang-dump-type <DUMP_TYPE>]
[--blame-hang-timeout <TIMESPAN>]
[-c|--configuration <CONFIGURATION>]
[--collect <DATA_COLLECTOR_NAME>]
[-d|--diag <LOG_FILE>]
[--disable-build-servers]
[-f|--framework <FRAMEWORK>]
[-e|--environment <NAME="VALUE">]
[--filter <EXPRESSION>]
[--interactive]
[-l|--logger <LOGGER>]
[--no-build]
[--no-dependencies]
[--nologo]
[--no-restore]
[-o|--output <OUTPUT_DIRECTORY>]
[--os <OS>]
[--results-directory <RESULTS_DIR>]
[-r|--runtime <RUNTIME_IDENTIFIER>]
[-s|--settings <SETTINGS_FILE>]
[-t|--list-tests]
[--tl:[auto|on|off]]
[-v|--verbosity <LEVEL>]
[<args>...]
[[--] <RunSettings arguments>]
dotnet test -h|--help
Description
dotnet test ã³ãã³ãã¯ãæå®ããããœãªã¥ãŒã·ã§ã³ã§åäœãã¹ããå®è¡ããå Žåã«äœ¿çšãããŸãã
dotnet test ã³ãã³ãã¯ããœãªã¥ãŒã·ã§ã³ããã«ãããVSTestã䜿çšããŠãœãªã¥ãŒã·ã§ã³å
ã®åãã¹ã ãããžã§ã¯ãã®ãã¹ã ãã¹ã ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŸãã ãã¹ã ãã¹ãã¯ãMSTestãNUnitãxUnit ãªã©ã®ãã¹ã ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠç¹å®ã®ãããžã§ã¯ãã§ãã¹ããå®è¡ããåãã¹ãã®æåãŸãã¯å€±æãå ±åããŸãã ãã¹ãŠã®ãã¹ããæåããå Žåããã¹ã ã©ã³ããŒã¯ 0 ã®çµäºã³ãŒããè¿ããŸãããã以å€ã®ãããããã®ãã¹ãã«å€±æããå Žåã¯ã1 ãè¿ããŸãã
泚
dotnet test ã¯åœåã VSTest ããŒã¹ã®ãã¹ã ãããžã§ã¯ãã®ã¿ããµããŒãããããã«èšèšãããŸããã æè¿ã®ããŒãžã§ã³ã®ãã¹ã ãã¬ãŒã ã¯ãŒã¯ã§ã¯ãMicrosoft ã®ãµããŒãã远å ãããŠããŸããTesting.Platform (MTP)ã ãã®ä»£æ¿ãã¹ã ãã©ãããã©ãŒã ã¯ã VSTest ããã軜éã§é«éã§ãããããŸããŸãªã³ãã³ã ã©ã€ã³ ãªãã·ã§ã³ã§ dotnet test ããµããŒãããŸãã 詳现ã«ã€ããŠã¯ã MTP ã䜿çšãã dotnet ãã¹ããåç
§ããŠãã ããã
è€æ°ã®å¯Ÿè±¡ãæã€ãããžã§ã¯ãã§ã¯ã察象ãšãªãåãã¬ãŒã ã¯ãŒã¯ã«å¯ŸããŠãã¹ããå®è¡ãããŸãã ãã¹ã ãã¹ããšåäœãã¹ã ãã¬ãŒã ã¯ãŒã¯ã¯ãNuGet ããã±ãŒãžãšããŠããã±ãŒãžåããããããžã§ã¯ãã®éåžžã®äŸåé¢ä¿ãšããŠåŸ©å
ãããŸãã .NET 9 SDK 以éã§ã¯ããããã®ãã¹ãã¯æ¢å®ã§äžŠåã§å®è¡ãããŸãã 䞊åå®è¡ãç¡å¹ã«ããã«ã¯ã TestTfmsInParallel MSBuild ããããã£ã false ã«èšå®ããŸãã 詳现ã«ã€ããŠã¯ã 䞊åå®è¡ãã¹ããš ãã®èšäºã§åŸè¿°ãã ãµã³ãã« ã³ãã³ã ã©ã€ã³ãåç
§ããŠãã ããã
ãã¹ã ãããžã§ã¯ãã§ã¯ãéåžžã® <PackageReference> èŠçŽ ã䜿çšããŠãã¹ã ã©ã³ããŒãæå®ããŸããæ¬¡ã®ãµã³ãã« ãããžã§ã¯ã ãã¡ã€ã«ã®ããã«ãªããŸãã
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.11.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="4.0.1" />
</ItemGroup>
</Project>
Microsoft.NET.Test.Sdkããã¹ã ãã¹ãã§ããå Žåãxunit ã¯ãã¹ã ãã¬ãŒã ã¯ãŒã¯ã§ãã ãŸããxunit.runner.visualstudio ã¯ãã¹ã ã¢ããã¿ãŒã§ãããxUnit ãã¬ãŒã ã¯ãŒã¯ã¯ãã¹ã ãã¹ããšé£æºã§ããŸãã
æé»çãªåŸ©å
埩å
ãå¿
èŠãšãããã¹ãŠã®ã³ãã³ã (dotnet restoreãdotnet newãdotnet buildãdotnet runãdotnet testãdotnet publish ãªã©) ã«ãã£ãŠæé»çã«å®è¡ããããããdotnet pack ãå®è¡ããå¿
èŠããªããªããŸããã æé»çãªåŸ©å
ãç¡å¹ã«ããã«ã¯ã--no-restore ãªãã·ã§ã³ã䜿çšããŸãã
NuGet ãã£ãŒãã®ç®¡çæ¹æ³ã«ã€ããŠã¯ãdotnet restore ã®ããã¥ã¡ã³ããã芧ãã ããã
ã¯ãŒã¯ããŒã ãããã§ã¹ãã®ããŠã³ããŒã
ãã®ã³ãã³ããå®è¡ãããšãã¯ãŒã¯ããŒãã®åºåãããã§ã¹ãã®éåæããã¯ã°ã©ãŠã³ã ããŠã³ããŒããéå§ãããŸãã ãã®ã³ãã³ããçµäºããŠãããŠã³ããŒããå®è¡ãããŠããå ŽåãããŠã³ããŒãã¯åæ¢ããŸãã 詳现ã«ã€ããŠã¯ããåºåãããã§ã¹ãããåç §ããŠãã ããã
è«äº
PROJECT | SOLUTION | DIRECTORY | DLL | EXE- ãã¹ã ãããžã§ã¯ããžã®ãã¹ã
- ãœãªã¥ãŒã·ã§ã³ãžã®ãã¹ã
- ãããžã§ã¯ããŸãã¯ãœãªã¥ãŒã·ã§ã³ãå«ããã£ã¬ã¯ããªãžã®ãã¹ã
- ãã¹ã ãããžã§ã¯ã ".dll" ãã¡ã€ã«ãžã®ãã¹ã
- ãã¹ã ãããžã§ã¯ã .exe ãã¡ã€ã«ãžã®ãã¹ã
æå®ããªãå Žåã
DIRECTORYåŒæ°ã䜿çšããŠçŸåšã®ãã£ã¬ã¯ããªãæå®ããå Žåãšåã广ããããŸãã
ãªãã·ã§ã³
Warnung
ãªãã·ã§ã³ã®ç Žå£ç倿Ž:
- .NET 7 以é:
-aã--archã§ã¯ãªããšã€ãªã¢ã¹--test-adapter-pathã«åãæ¿ãã - .NET 7 以é:
-rã--runtimeã§ã¯ãªããšã€ãªã¢ã¹--results-directoryã«åãæ¿ãã
--test-adapter-path <ADAPTER_PATH>ãã¹ãã®å®è¡ã«äœ¿çšããã«ã¹ã¿ã ã¢ããã¿ãŒãžã®ãã¹ã
çã圢åŒ
-a7 ããåã®ããŒãžã§ã³.NET SDK ã§äœ¿çšã§ããŸãã-
-a|--arch <ARCHITECTURE>ã¿ãŒã²ãã ã¢ãŒããã¯ãã£ãæå®ããŸãã ããã¯ãã©ã³ã¿ã€ã èå¥å (RID) ãèšå®ããç°¡åãªæ§æã§ããæå®ããå€ã¯ãæ¢å®ã® RID ãšçµã¿åããããŸãã ããšãã°ã
win-x64ãã·ã³ã§--arch x86ãšæå®ãããšãRID ã¯win-x86ã«èšå®ãããŸãã ãã®ãªãã·ã§ã³ã䜿çšããå Žåã¯ã-r|--runtimeãªãã·ã§ã³ã¯äœ¿çšããªãã§ãã ããã .NET 6 Preview 7 以éã§äœ¿çšã§ããŸãã -
--artifacts-path <ARTIFACTS_DIR>å®è¡ãããã³ãã³ãããã®ãã¹ãŠã®ãã«ãåºåãã¡ã€ã«ã¯ãæå®ããããã¹ã®äžã®ãµããã©ã«ããŒã«é 眮ããããããžã§ã¯ãã§åºåãããŸãã 詳现ã«ã€ããŠã¯ãã Artifacts åºåã¬ã€ã¢ãŠããåç §ããŠãã ããã ãã®ãªãã·ã§ã³ãšæå®ãããå€ã¯ã
dotnetãdotnetã䜿çšããå Žåãªã©ãå¥ã®dotnet build --no-restoreã³ãã³ãã®åºåã«äŸåããä»»æã®dotnet publish --no-buildã³ãã³ãã§æç€ºçã«ã«ã¹ã±ãŒãããå¿ èŠããããŸãã .NET 8 SDK 以éã§äœ¿çšã§ããŸãã --blame倿Žå±¥æŽã¢ãŒãã§ãã¹ããå®è¡ããŸãã ãã®ãªãã·ã§ã³ã¯ããã¹ã ãã¹ããã¯ã©ãã·ã¥ããåå ãšãªãåé¡ã®ãããã¹ããåé¢ããããã«åœ¹ç«ã¡ãŸãã ã¯ã©ãã·ã¥ãæ€åºããããšãã¯ã©ãã·ã¥åã«å®è¡ããããã¹ãã®é åºããã£ããã£ããã·ãŒã±ã³ã¹ ãã¡ã€ã«ã
TestResults/<Guid>/<Guid>_Sequence.xmlã«äœæãããŸãããã®ãªãã·ã§ã³ã§ã¯ã¡ã¢ãª ãã³ãã¯äœæãããããã¹ãããã³ã°ããŠããå Žåã¯åœ¹ã«ç«ã¡ãŸããã
--blame-crash(.NET 5.0 SDK 以éã§å©çšå¯èœ)ãã¹ã ãã¹ããäºæããã«çµäºããå Žåã«ã倿Žå±¥æŽã¢ãŒãã§ãã¹ããå®è¡ããŠãã¯ã©ãã·ã¥ ãã³ããåéããŸãã ãã®ãªãã·ã§ã³ã¯ã䜿çš.NETã®ããŒãžã§ã³ããšã©ãŒã®çš®é¡ãããã³ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã«ãã£ãŠç°ãªããŸãã
ãããŒãžã ã³ãŒãã®äŸå€ã®å Žåããã³ã㯠.NET 5.0 以éã®ããŒãžã§ã³ã§èªåçã«åéãããŸãã ãŸãã.NET 5.0 ã§å®è¡ãããã¯ã©ãã·ã¥ãã testhost ãŸãã¯åããã»ã¹ã®ãã³ããçæãããŸãã ãã€ãã£ã ã³ãŒãã§ã®ã¯ã©ãã·ã¥ã®å Žåããã³ãã¯çæãããŸããã ãã®ãªãã·ã§ã³ã¯ãWindowsãmacOSãLinux ã§åäœããŸãã
ãã€ãã£ã ã³ãŒãã®ã¯ã©ãã·ã¥ ãã³ãããŸã㯠.NET Core 3.1 以åã®ããŒãžã§ã³ã䜿çšããŠããå Žåã¯ãProcdump ã䜿çšããŠãWindowsã§ã®ã¿åéã§ããŸãã procdump.exe ããã³ procdump64.exe ãå«ããã£ã¬ã¯ããªããPATH ãŸã㯠PROCDUMP_PATH ç°å¢å€æ°ã«æå®ãããŠããå¿ èŠããããŸãã ããŒã«ãããŠã³ããŒãããŸãã
--blameãæå³ããŸãã.NET 5.0 以éã§å®è¡ãããŠãããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ããã¯ã©ãã·ã¥ ãã³ããåéããã«ã¯ã
VSTEST_DUMP_FORCEPROCDUMPç°å¢å€æ°ã1ã«èšå®ããããšã§ Procdump ã®äœ¿çšã匷å¶ã§ããŸãããã¹ã ãã©ãããã©ãŒã ç°å¢å€æ°ã®å®å šãªäžèЧã«ã€ããŠã¯ãã ç°å¢å€æ°ããåç §ããŠãã ããã
--blame-crash-dump-type <DUMP_TYPE>(.NET 5.0 SDK 以éã§å©çšå¯èœ)åéãããã¯ã©ãã·ã¥ ãã³ãã®çš®é¡ã ãµããŒããããŠãããã³ãã®çš®é¡ã¯
full(æ¢å®)ãããã³miniã§ãã--blame-crashãæå³ããŸãã--blame-crash-collect-always(.NET 5.0 SDK 以éã§å©çšå¯èœ)äºæããªããã¹ã ãã¹ãã®çµäºã ãã§ãªããäºæãããŠãããã®ã«å¯ŸããŠããã¯ã©ãã·ã¥ ãã³ããåéããŸãã
--blame-hang(.NET 5.0 SDK 以éã§å©çšå¯èœ)倿Žå±¥æŽã¢ãŒãã§ãã¹ããå®è¡ãããã¹ããæå®ã®ã¿ã€ã ã¢ãŠããè¶ ãããšãã«ãã³ã° ãã³ããåéããŸãã
--blame-hang-dump-type <DUMP_TYPE>(.NET 5.0 SDK 以éã§å©çšå¯èœ)åéãããã¯ã©ãã·ã¥ ãã³ãã®çš®é¡ã å¿ ãã
fullãminiããŸãã¯noneã«ãªããŸããnoneãæå®ãããŠããå Žåãã¿ã€ã ã¢ãŠãæã«ãã¹ã ãã¹ããçµäºãããŸããããã³ãã¯åéãããŸããã--blame-hangãæå³ããŸãã--blame-hang-timeout <TIMESPAN>(.NET 5.0 SDK 以éã§å©çšå¯èœ)ãã¹ãããšã®ã¿ã€ã ã¢ãŠãããããéãããšããã³ã° ãã³ããããªã¬ãŒããããã¹ã ãã¹ã ããã»ã¹ãšãã®ãã¹ãŠã®åããã»ã¹ã¯ããã³ããããŠçµäºãããŸãã ã¿ã€ã ã¢ãŠãå€ã¯ã次ã®ããããã®åœ¢åŒã§æå®ãããŸãã
- 1.5hã1.5hourã1.5hours
- 90mã90minã90minuteã90minutes
- 5400sã5400secã5400secondã5400seconds
- 5400000msã5400000milã5400000millisecondã5400000milliseconds
åäœã䜿çšãããŠããªãå Žå (äŸ: 5400000)ãå€ã¯ããªç§åäœã§ãããšèŠãªãããŸãã ããŒã¿ ããªãã³ ãã¹ããšå ±ã«äœ¿çšãããšãã¿ã€ã ã¢ãŠãã®åäœã¯ãå©çšãããã¹ã ã¢ããã¿ãŒã«å¿ããŠç°ãªããŸãã xUnitãNUnitãMSTest 2.2.4 以éã®å Žåãã¿ã€ã ã¢ãŠãã¯ãã¹ã ã±ãŒã¹ããšã«æŽæ°ãããŸãã ããŒãžã§ã³ 2.2.4 ããåã® MSTest ã®å Žåããã¹ãŠã®ãã¹ã ã±ãŒã¹ã«ãã®ã¿ã€ã ã¢ãŠãã䜿çšãããŸãã ãã®ãªãã·ã§ã³ã¯ã
netcoreapp2.1以éã®Windowsãnetcoreapp3.1以éã® Linuxãããã³net5.0以éã® macOS ã§ãµããŒããããŸãã--blameãš--blame-hangãæå³ããŸãããŸãã
.runsettingsãã¡ã€ã«ã§éé£ãæ§æãã--settingsã§æž¡ãããšãã§ããŸãã.runsettingsãã¡ã€ã«ã¯ãåãéé£åäœãšãæäžäœã¬ãã«ã®dotnet testã¹ã€ãããšããŠå ¬éãããŠããªã远å ã®ã㌠(CollectDumpOnTestSessionHangãMonitorPostmortemDebuggerãªã©) ããµããŒãããŸãã 詳现ã«ã€ããŠã¯ãã ããŒã¿ ã³ã¬ã¯ã¿ãŒãéé£ããããåç §ããŠãã ããã<RunSettings> <DataCollectionRunSettings> <DataCollectors> <DataCollector friendlyName="blame" enabled="true"> <Configuration> <CollectDump CollectAlways="true" DumpType="full" /> <CollectDumpOnTestSessionHang TestTimeout="30min" HangDumpType="full" /> <MonitorPostmortemDebugger DumpDirectoryPath="C:\Dumps" /> </Configuration> </DataCollector> </DataCollectors> </DataCollectionRunSettings> </RunSettings>次ã®è¡šã¯ããã®
dotnet testã¹ã€ãããš.runsettingsèŠçŽ ã«ãéé£ãªãã·ã§ã³ããããããŸãã å®å šãªéé£ã³ã¬ã¯ã¿ãŒã®ãªãã¡ã¬ã³ã¹ã«ã€ããŠã¯ãã ããŒã¿ ã³ã¬ã¯ã¿ãŒãéé£ããããåç §ããŠãã ãããã¯ã©ãã·ã¥ ãã³ã ãªãã·ã§ã³:
Behavior dotnet testã¹ã€ãã.runsettingsèŠçŽã¯ã©ãã·ã¥ ãã³ããåéãã --blame-crash<CollectDump />ã¯ãªãŒã³ãªåºå£ã§ãåéãã --blame-crash-collect-always<CollectDump CollectAlways="true" />ãã³ãã®çš®é¡ ( miniãfullãæ¢å®ã®full)--blame-crash-dump-type<CollectDump DumpType="full" />ãã³ã° ãã³ã ãªãã·ã§ã³:
Behavior dotnet testã¹ã€ãã.runsettingsèŠçŽãã³ã° ãã³ããåéãã --blame-hang<CollectDumpOnTestSessionHang />ãã³ã° ãã³ãåã®ã¿ã€ã ã¢ãŠã (æ¢å®ã® 1h)--blame-hang-timeout<CollectDumpOnTestSessionHang TestTimeout="90m" />ãã³ã° ãã³ãã®çš®é¡ ( miniãfullãnone)--blame-hang-dump-type<CollectDumpOnTestSessionHang HangDumpType="mini" />Microsoftã®å ŽåãTesting.Platform (MTP) ãã¹ã ã¢ããªã
--blame-*ã¹ã€ãããããã³éé£ããŒã¿ ã³ã¬ã¯ã¿ãŒã¯é©çšãããŸããã MTP ã§ã¯ã--crashdumpããã³--hangdumpããã±ãŒãžããã®--hangdump-timeoutãMicrosoft.Testing.Extensions.CrashDumpãããã³Microsoft.Testing.Extensions.HangDumpã䜿çšãããŸãã 詳现ã«ã€ããŠã¯ã MTP ã䜿çšãã dotnet ãã¹ããåç §ããŠãã ããã-
-c|--configuration <CONFIGURATION>ãã«ãæ§æãå®çŸ©ããŸãã ã»ãšãã©ã®ãããžã§ã¯ãã®æ¢å®å€ã¯
Debugã§ããããããžã§ã¯ãã§ãã«ãæ§æèšå®ããªãŒããŒã©ã€ãã§ããŸãã --collect <DATA_COLLECTOR_NAME>ãã¹ãå®è¡ã®ããŒã¿ ã³ã¬ã¯ã¿ãŒãæå¹ã«ããŸãã ã€ãã³ã ãã° ããŒã¿ ã³ã¬ã¯ã¿ãŒãç¬èªã®ããŒã¿ ã³ã¬ã¯ã¿ãŒãäœæããããã®ã¬ã€ãã³ã¹ãªã©ã詳现ã«ã€ããŠã¯ãã ãã¹ãå®è¡ã®ç£èŠãšåæããåç §ããŠãã ããã
Windows ã§ã¯ã
--collect "Code Coverage"ãªãã·ã§ã³ã䜿çšããŠã³ãŒã ã«ãã¬ããžãåéã§ããŸãã 詳现ã«ã€ããŠã¯ããã³ãŒã ã«ãã¬ããžã®äœ¿çšãã³ãŒã ã«ãã¬ããžåæã®ã«ã¹ã¿ãã€ãºãããã³GitHubçºè¡ dotnet/docs#34479 ãåç §ããŠãã ãããã³ãŒã ã«ãã¬ããžãåéããã«ã¯ã ãªãã·ã§ã³ã䜿çšããŠ
--collect "XPlat Code Coverage"ã䜿çšããããšãã§ããŸãã-d|--diag <LOG_FILE>ãã¹ã ãã©ãããã©ãŒã ã®èšºæã¢ãŒããæå¹ã«ããæå®ãããã¡ã€ã«ãšãã以éã®ãã¡ã€ã«ã«èšºæã¡ãã»ãŒãžãåºåããŸãã ã¡ãã»ãŒãžããã°ã«èšé²ããããã»ã¹ã«ãã£ãŠããã¹ã ãã¹ã ãã°ã®
*.host_<date>.txtãããŒã¿ ã³ã¬ã¯ã¿ãŒ ãã°ã®*.datacollector_<date>.txtãªã©ã®ãäœæããããã¡ã€ã«ã決ãŸããŸãããã¬ãŒã¹ ã¬ãã«ãèšå®ããã«ã¯ããã° ãã¡ã€ã«åã«
;tracelevel=<LEVEL>ã远å ããŸã (äŸ:--diag log.txt;tracelevel=verbose)ãtracelevelã«äœ¿çšã§ããå€ã¯offãerrorãwarningãinfoãverboseã§ãã æ¢å®å€ã¯verboseã§ãã-
--disable-build-serversæ°žç¶çãªãã«ã ãµãŒããŒã匷å¶çã«ç¡èŠããŠã³ãã³ããå®è¡ããŸãã ãã®ãªãã·ã§ã³ã¯ãäžè²«ããŠãã«ã ãã£ãã·ã¥ã®äœ¿çšããã¹ãŠç¡å¹ã«ãããŒãããã®ãã«ãã匷å¶ããææ®µãšããŠäœ¿çšã§ããŸãã ãã£ãã·ã¥ã«äŸåããªããã«ããå®è¡ããããšã¯ããã£ãã·ã¥ãäœããã®çç±ã§ç Žæãããäžæ£ç¢ºãªå 容ã«ãªã£ãå¯èœæ§ãããå Žåã«åœ¹ç«ã¡ãŸãã .NET 7 SDK 以éã§äœ¿çšã§ããŸãã
-e|--environment <NAME="VALUE">ç°å¢å€æ°ã®å€ãèšå®ããŸãã 倿°ãååšããªãå Žåã¯äœæããååšããå Žåã¯ãªãŒããŒã©ã€ãããŸãã ãã®ãªãã·ã§ã³ã䜿çšãããšãåé¢ããã»ã¹ã§ãã¹ãã匷å¶çã«å®è¡ãããŸãã ãã®ãªãã·ã§ã³ã¯è€æ°åæå®ããŠãè€æ°ã®å€æ°ãæå®ã§ããŸãã
-f|--framework <FRAMEWORK>ãã¹ããå®è¡ããã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ã®ã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ ã¢ãã«ãŒ (TFM)ã ã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ããããžã§ã¯ã ãã¡ã€ã«ã«æå®ããå¿ èŠããããŸãã
--filter <EXPRESSION>æå®ãããåŒã䜿çšããŠãçŸåšã®ãããžã§ã¯ãå ã®ãã¹ãããã£ã«ã¿ãªã³ã°ããŸãã ãã£ã«ã¿ãŒåŒã«äžèŽãããã¹ãã®ã¿ãå®è¡ãããŸãã 詳现ã«ã€ããŠã¯ãããã£ã«ã¿ãŒ ãªãã·ã§ã³ã®è©³çްãã»ã¯ã·ã§ã³ãã芧ãã ããã éžæçåäœãã¹ãã®ãã£ã«ã¿ãŒåŠçã®äœ¿ç𿹿³ã«é¢ãã詳现ãšäŸã«ã€ããŠã¯ããéžæçåäœãã¹ãã®å®è¡ããã芧ãã ããã
-
-?|-h|--helpã³ãã³ãã®äœ¿ç𿹿³ã瀺ãã説æãåºåããŸãã
-
--interactiveã³ãã³ãã忢ããŠããŠãŒã¶ãŒã®å ¥åãŸãã¯æäœã®ããã«åŸ æ©ãããããšãã§ããŸãã ããšãã°ãèªèšŒãå®äºããå ŽåããããŸãã
-l|--logger <LOGGER>ãã¹ãçµæã®ãã¬ãŒãæå®ãããªãã·ã§ã³ã§ãã¬ãŒã«åãæ¿ããŸãã è€æ°ã®ãã¬ãŒãæå¹ã«ããã«ã¯ããã©ã¡ãŒã¿ãŒãè€æ°åæå®ããŸãã 詳现ã«ã€ããŠã¯ãããã¹ãçµæã®å ±åããããã¬ãŒã®ã¹ã€ããããããã³ãã®èšäºã®åŸã§åºãŠããäŸã«é¢ããã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
ã³ãã³ã ã©ã€ã³ ã¹ã€ããããã¬ãŒã«æž¡ãã«ã¯ãæ¬¡ã®æé ãå®è¡ããŸã:
- çç¥åœ¢ã§ã¯ãªããã¹ã€ããã®å®å
šãªååã䜿çšããŸã (ããšãã°ã
verbosityã§ã¯ãªãv)ã - å é ã®ããã·ã¥ãçç¥ããŸãã
- åã¹ã€ãããåºåãã¹ããŒã¹ãã»ãã³ãã³
;ã§çœ®ãæããŸãã - ã¹ã€ããã«å€ãããå Žåã¯ããã®ã¹ã€ãããšãã®å€ã®éã®ã³ãã³åºåãèšå·ãçå·
=ã«çœ®ãæããŸãã
ããšãã°ã
-v:detailed --consoleLoggerParameters:ErrorsOnlyã¯verbosity=detailed;consoleLoggerParameters=ErrorsOnlyã«ãªããŸãã- çç¥åœ¢ã§ã¯ãªããã¹ã€ããã®å®å
šãªååã䜿çšããŸã (ããšãã°ã
--no-buildå®è¡åã«ãã¹ã ãããžã§ã¯ãããã«ãããŸããã ãŸãã
--no-restoreãã©ã°ãæé»çã«èšå®ããŸãã--no-dependenciesãããžã§ã¯ãéåç §ã®ãã«ããã¹ãããããŸãã .NET 11 Preview 6 以éã§äœ¿çšã§ããŸãã
--nologoMicrosoft TestPlatform ãããŒã衚瀺ããã«ãã¹ããå®è¡ããŸãã .NET Core 3.0 SDK 以éã§äœ¿çšã§ããŸãã
--no-restoreã³ãã³ãã®å®è¡æã«æé»çãªåŸ©å ãå®è¡ããŸããã
-o|--output <OUTPUT_DIRECTORY>å®è¡ãããã€ããªãæ€çŽ¢ãããã£ã¬ã¯ããªã§ãã æå®ããªãå Žåãæ¢å®ã®ãã¹ã¯
./bin/<configuration>/<framework>/ã«ãªããŸãã (TargetFrameworksããããã£ã䜿çšãã) ã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ãè€æ°ãããããžã§ã¯ãã®å Žåã¯ããã®ãªãã·ã§ã³ãæå®ãããšãã«--frameworkãå®çŸ©ããå¿ èŠããããŸããdotnet testã§ã¯åžžã«ãåºåãã£ã¬ã¯ããªãããã¹ããå®è¡ãããŸãã AppDomain.BaseDirectory ã䜿çšããŠãåºåãã£ã¬ã¯ããªå ã®ãã¹ãè³ç£ã䜿çšã§ããŸãã.NET 7.0.200 SDK 以é
ãœãªã¥ãŒã·ã§ã³ã§ãã®ã³ãã³ããå®è¡ãããšãã«
--outputãªãã·ã§ã³ãæå®ãããšãåºåãã¹ã®äžæãªã»ãã³ãã£ã¯ã¹ãåå ã§ãCLI ããèŠå (7.0.200 ã®ãšã©ãŒ) ãåºåãããŸãã ãã®ãªãã·ã§ã³ã¯ããã«ãããããã¹ãŠã®ãããžã§ã¯ãã®ãã¹ãŠã®åºåãæå®ããããã£ã¬ã¯ããªã«ã³ããŒãããããããã®--outputãªãã·ã§ã³ã¯èš±å¯ãããŸãããããã¯ãè€æ°ã®ã¿ãŒã²ãããæã€ãããžã§ã¯ããšãçŽæ¥ããã³æšç§»çäŸåé¢ä¿ã®ç°ãªãããŒãžã§ã³ãæã€ãããžã§ã¯ããšäºææ§ããããŸããã 詳ããã¯ãããœãªã¥ãŒã·ã§ã³ ã¬ãã«ã®--outputãªãã·ã§ã³ããã«ãé¢é£ã³ãã³ãã§ç¡å¹ã«ããåç §ããŠãã ããã
-
--os <OS>ã¿ãŒã²ãã ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã (OS) ãæå®ããŸãã ããã¯ãã©ã³ã¿ã€ã èå¥å (RID) ãèšå®ããç°¡åãªæ§æã§ããæå®ããå€ã¯ãæ¢å®ã® RID ãšçµã¿åããããŸãã ããšãã°ã
win-x64ãã·ã³ã§--os linuxãšæå®ãããšãRID ã¯linux-x64ã«èšå®ãããŸãã ãã®ãªãã·ã§ã³ã䜿çšããå Žåã¯ã-r|--runtimeãªãã·ã§ã³ã¯äœ¿çšããªãã§ãã ããã .NET 6 以éã§äœ¿çšã§ããŸãã --results-directory <RESULTS_DIR>ãã¹ãçµæãé 眮ããããã£ã¬ã¯ããªã§ãã æå®ããããã£ã¬ã¯ããªãååšããªãå Žåã¯ãäœæãããŸãã æ¢å®å€ã¯ããããžã§ã¯ã ãã¡ã€ã«ãå«ãŸãããã£ã¬ã¯ããªã®
TestResultsã§ããçã圢åŒ
-r7 ããåã®ããŒãžã§ã³.NET SDK ã§äœ¿çšã§ããŸãã-r|--runtime <RUNTIME_IDENTIFIER>ãã¹ã察象ã®ã¿ãŒã²ãã ã©ã³ã¿ã€ã ã
.NET SDK 7 以éã§ã¯ãçã圢åŒ
-rã䜿çšã§ããŸãã-s|--settings <SETTINGS_FILE>ãã¹ãã®å®è¡ã«äœ¿çšãã
.runsettingsãã¡ã€ã«ã§ããTargetPlatformèŠçŽ (x86|x64) ã¯dotnet testã«ã¯åœ±é¿ããŸããã x86 ã察象ãšãããã¹ããå®è¡ããã«ã¯ãx86 ããŒãžã§ã³ã® .NET Core ãã€ã³ã¹ããŒã«ããŸãã ãã¹ã«ãã dotnet.exe ã®ãããã¯ããã¹ããå®è¡ããããã«äœ¿çšããããã®ã§ãã 詳现ã«ã€ããŠã¯ã次ã®ãªãœãŒã¹ãåç §ããŠãã ããã-t|--list-testsãã¹ããå®è¡ãã代ããã«ãæ€åºããããã¹ããäžèŠ§è¡šç€ºããŸãã
-
--tl:[auto|on|off]ãã«ãåºåã« ã¿ãŒããã« ãã¬ãŒ ã䜿çšãããã©ãããæå®ããŸãã æ¢å®å€ã¯ãã¿ãŒããã« ãã°ãæå¹ã«ããåã«ãŸãç°å¢ã確èªããã
autoã§ãã ç°å¢ãã§ãã¯ã§ã¯ãã¿ãŒããã«ãææ°ã®åºåæ©èœã䜿çšã§ããæ°ãããã¬ãŒãæå¹ã«ããåã«ãªãã€ã¬ã¯ããããæšæºåºåã䜿çšããŠããªãããšã確èªããŸããonã¯ãç°å¢ãã§ãã¯ãã¹ãããããã¿ãŒããã« ãã°ãæå¹ã«ããŸããoffã¯ãç°å¢ãã§ãã¯ãã¹ãããããæ¢å®ã®ã³ã³ãœãŒã« ãã¬ãŒã䜿çšããŸããã¿ãŒããã« ãã¬ãŒã«ã¯ã埩å ãã§ãŒãºãšãã«ã ãã§ãŒãºã衚瀺ãããŸãã åãã§ãŒãºã«ãããŠãçŸåšãã«ãäžã®ãããžã§ã¯ããã¿ãŒããã«ã®äžéšã«è¡šç€ºãããŸãã ãã«ãäžã®åãããžã§ã¯ãã«å¯ŸããçŸåšãã«ãäžã® MSBuild ã¿ãŒã²ãããšãã®ã¿ãŒã²ããã«è²»ããããæéã®äž¡æ¹ãåºåãããŸãã ãã«ãã®è©³çްã¯ããã®æ å ±ãæ€çŽ¢ããŠç¢ºèªã§ããŸãã ãããžã§ã¯ãã®ãã«ããå®äºãããšã次ããã£ããã£ããã 1 ã€ã® "ãã«ããå®äºããŸãã" ã»ã¯ã·ã§ã³ãæžã蟌ãŸããŸãã
- ãã«ãããããããžã§ã¯ãã®ååã
- ã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ (è€æ°ã¿ãŒã²ããã®å Žå)ã
- ãã®ãã«ãã®ç¶æ ã
- ãã®ãã«ãã®äž»ãªåºå (ãã€ããŒãªã³ã¯ä»ã)ã
- ãã®ãããžã§ã¯ãã«å¯ŸããŠçæããã蚺æã
ãã®ãªãã·ã§ã³ã¯ã.NET 8 以éã§äœ¿çšã§ããŸãã
-
-v|--verbosity <LEVEL>ã³ãã³ãã®è©³çްã¬ãã«ãèšå®ããŸãã æå®ã§ããå€ã¯ã
q[uiet]ãm[inimal]ãn[ormal]ãd[etailed]ãããã³diag[nostic]ã§ãã æ¢å®å€ã¯minimalã§ãã 詳现ã«ã€ããŠã¯ãLoggerVerbosityãåç §ããŠãã ããã argsã¢ããã¿ãŒã«æž¡ã远å ã®åŒæ°ãæå®ããŸãã è€æ°ã®åŒæ°ãæå®ããå Žåã¯ã空çœã§åºåããŸãã
å¯èœãªåŒæ°ã®äžèЧã¯ãæå®ãããåäœã«äŸåããŸãã
- ãããžã§ã¯ãããœãªã¥ãŒã·ã§ã³ããŸãã¯ãã£ã¬ã¯ããªãæå®ããå ŽåããŸãã¯ãã®åŒæ°ãçç¥ããå ŽåãåŒã³åºãã¯
msbuildã«è»¢éãããŸãã ãã®å Žåã䜿çšå¯èœãªåŒæ°ã¯ãdotnet msbuild ã®ããã¥ã¡ã³ãã§ç¢ºèªã§ããŸãã -
.dll ãŸã㯠.exe ãæå®ããå ŽåãåŒã³åºãã¯
vstestã«è»¢éãããŸãã ãã®å Žåã䜿çšå¯èœãªåŒæ°ã¯ãdotnet vstest ã®ããã¥ã¡ã³ãã§ç¢ºèªã§ããŸãã
- ãããžã§ã¯ãããœãªã¥ãŒã·ã§ã³ããŸãã¯ãã£ã¬ã¯ããªãæå®ããå ŽåããŸãã¯ãã®åŒæ°ãçç¥ããå ŽåãåŒã³åºãã¯
RunSettingsåŒæ°
ã€ã³ã©ã€ã³ã® RunSettings ã¯ãã³ãã³ã ã©ã€ã³ã®æåŸã®åŒæ°ãšã㊠"-- " ã®åŸã«æž¡ãããŸã (-- ã®åŸã®ã¹ããŒã¹ã«æ³šæããŠãã ãã)ã ã€ã³ã©ã€ã³ã® RunSettings 㯠[name]=[value] ã®ãã¢ãšããŠæå®ãããŸãã è€æ°ã® [name]=[value] ã®ãã¢ãåºåãã«ã¯ã¹ããŒã¹ã䜿çšããŸãã
äŸ: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True
.NET 5 SDK 以éã§ã¯ãã³ãã³ã ã©ã€ã³ããTestRunParametersãèšå®ããããšãã§ããŸã (äŸ: dotnet test -- TestRunParameters.Parameter(name="myParam", value="value"))ã
RunSettings åŒæ°ã¯ã .runsettings ãã¡ã€ã«ã®å€ãããåªå
ãããŸãã
詳现ã«ã€ããŠã¯ããPassing RunSettings arguments through command line ãåç §ããŠãã ããã
äŸç€º
çŸåšã®ãã£ã¬ã¯ããªã®ãããžã§ã¯ãã§ãã¹ããå®è¡ããŸãã
dotnet testtest1ãããžã§ã¯ãã§ãã¹ããå®è¡ããŸããdotnet test ~/projects/test1/test1.csprojtest1.dllã¢ã»ã³ããªã䜿çšããŠãã¹ããå®è¡ããŸããdotnet test ~/projects/test1/bin/debug/test1.dllçŸåšã®ãã£ã¬ã¯ããªã§ãããžã§ã¯ãã®ãã¹ããå®è¡ããtrx 圢åŒã§ãã¹ãçµæãã¡ã€ã«ãçæããŸãã
dotnet test --logger trxçŸåšã®ãã£ã¬ã¯ããªå ã®ãããžã§ã¯ãã§ãã¹ããå®è¡ããMicrosoft Code Coverage ã䜿çšããŠã³ãŒã ã«ãã¬ããž ãã¡ã€ã«ãçæããŸãã
dotnet test --collect "Code Coverage"çŸåšã®ãã£ã¬ã¯ããªã®ãããžã§ã¯ãã§ãã¹ããå®è¡ããCoverlet (Coverlet ã³ã¬ã¯ã¿ãŒçµ±å ã€ã³ã¹ããŒã«ããåŸ) ã䜿çšããŠã³ãŒã ã«ãã¬ããž ãã¡ã€ã«ãçæããŸãã
dotnet test --collect:"XPlat Code Coverage"çŸåšã®ãã£ã¬ã¯ããªã§ãããžã§ã¯ãã®ãã¹ããå®è¡ãã詳现ãã³ã³ãœãŒã«ã«èšé²ããŸãã
dotnet test --logger "console;verbosity=detailed"çŸåšã®ãã£ã¬ã¯ããªã«ãããããžã§ã¯ãã§ãã¹ããå®è¡ããtrx ãã¬ãŒã䜿çšã㊠TestResults ãã©ã«ããŒå ã® testResults.trx ã«ãã°ãèšé²ããŸãã
dotnet test --logger "trx;logfilename=testResults.trx"ãã° ãã¡ã€ã«åãæå®ãããŠããããããã«ãã¿ãŒã²ãã ãããžã§ã¯ãã®å Žåã¯åã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ã«åãååã䜿çšãããŸãã åã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ã®åºåã«ãã£ãŠãåã®ã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ã®åºåã¯äžæžããããŸãã ãã¡ã€ã«ã¯ãã¹ã ãããžã§ã¯ã ãã©ã«ããŒå ã® TestResults ãã©ã«ããŒã«äœæãããŸããããã¯ãçžå¯Ÿãã¹ããã®ãã©ã«ããŒãåºæºã«ããŠããããã§ãã æ¬¡ã®äŸã¯ãã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ããšã«åå¥ã®ãã¡ã€ã«ãäœæããæ¹æ³ã瀺ããŠããŸãã
çŸåšã®ãã£ã¬ã¯ããªã«ãããããžã§ã¯ãã§ãã¹ããå®è¡ããtrx ãã¬ãŒã䜿çšã㊠TestResults ãã©ã«ããŒå ã®ãã¡ã€ã«ã«ãã°ãèšé²ããŸãããã¡ã€ã«åã¯ãã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ããšã«äžæãšããŸãã
dotnet test --logger:"trx;LogFilePrefix=testResults"çŸåšã®ãã£ã¬ã¯ããªã«ãããããžã§ã¯ãã§ãã¹ããå®è¡ããhtml ãã¬ãŒã䜿çšã㊠TestResults ãã©ã«ããŒå ã® testResults.html ã«ãã°ãèšé²ããŸãã
dotnet test --logger "html;logfilename=testResults.html"çŸåšã®ãã£ã¬ã¯ããªã®ãããžã§ã¯ãã§ãã¹ããå®è¡ãããã¹ã ãã¹ããã¯ã©ãã·ã¥ãããšãã«å®è¡ãããŠãããã¹ããå ±åããŸãã
dotnet test --blametest1(ãã€ã㪠ãã°) åŒæ°ã-blã«æå®ããŠãmsbuildãããžã§ã¯ãã§ãã¹ããå®è¡ããŸããdotnet test ~/projects/test1/test1.csproj -blMSBuild
test1ããããã£ãDefineConstantsã«èšå®ããŠãDEVãããžã§ã¯ãã§ãã¹ããå®è¡ããŸããdotnet test ~/projects/test1/test1.csproj -p:DefineConstants="DEV"MSBuild
test1ããããã£ãTestTfmsInParallelã«èšå®ããŠãfalseãããžã§ã¯ãã§ãã¹ããå®è¡ããŸããdotnet test ~/projects/test1/test1.csproj -p:TestTfmsInParallel=false
ãã£ã«ã¿ãŒ ãªãã·ã§ã³ã®è©³çް
--filter <EXPRESSION>
<Expression> ã®åœ¢åŒã¯ <property><operator><value>[|&<Expression>] ã§ãã
<property> 㯠Test Case ã®å±æ§ã§ãã ããå©çšãããåäœãã¹ã ãã¬ãŒã ã¯ãŒã¯ã§ãµããŒããããããããã£ã¯ä»¥äžã®éãã§ãã
| ãã¹ã ãã¬ãŒã ã¯ãŒã¯ | ãµããŒãããããããã㣠|
|---|---|
| MSTest |
|
| xUnit |
|
| NUnit |
|
xUnit ã®å Žåã [Trait("key", "value")] ã§å®çŸ©ãããç¹æ§ã¯ããã®ããŒã«ãã£ãŠãã£ã«ã¿ãŒåŠçãããŸã (ããšãã°ã [Trait("Category", "bvt")] 㯠--filter Category=bvt ãšç
§åãããŸã)ã NUnit ã®å Žåã TestCategory ãš Category ã¯åçã§ããã [Property("key", "value")] ã§å®çŸ©ãããããããã£ã¯ãã®ããŒã§ãã£ã«ã¿ãŒåŠçãããŸãã
<operator> ã¯ãããããã£ãšå€ã®é¢ä¿ã瀺ããŸãã
| Operator | æ©èœ |
|---|---|
= |
å®å šäžèŽ |
!= |
å®å šäžèŽã§ã¯ãªã |
~ |
Contains |
!~ |
å«ãŸãªã |
<value> ã¯ãæååã§ãã ãã¹ãŠã®åç
§ã§å€§æåãšå°æåãåºå¥ãããŸãã
<operator> ãå«ãŸãªãåŒã¯ãèªåçã« contains ããããã£ã® FullyQualifiedName ãšã¿ãªãããŸã (ããšãã°ãdotnet test --filter xyz 㯠dotnet test --filter FullyQualifiedName~xyz ãšåãã§ã)ã
åŒã¯æ¡ä»¶æŒç®åã䜿çšããŠçµåã§ããŸãã
| Operator | æ©èœ |
|---|---|
| |
OR |
& |
AND |
æ¡ä»¶æŒç®åã䜿çšããå Žåã¯ãåŒããã£ãã§å²ã¿ãŸã (äŸ: (Name~TestMethod1) | (Name~TestMethod2))ã
éžæçåäœãã¹ãã®ãã£ã«ã¿ãŒåŠçã®äœ¿ç𿹿³ã«é¢ãã詳现ãšäŸã«ã€ããŠã¯ããéžæçåäœãã¹ãã®å®è¡ããã芧ãã ããã
çµäºã³ãŒã
VSTest ãã¹ã䜿çšããŠãã¹ããå®è¡ãããšã dotnet test ã¯æ¬¡ã® 2 ã€ã®çµäºã³ãŒãã®ããããã§çµæãå ±åããŸãã
| çµäºã³ãŒã | Meaning |
|---|---|
0 |
æåããŸããã èŠæ±ãããæäœãå®äºãããã¹ãã®å®è¡ã«å¯ŸããŠãå®è¡ããããã¹ãŠã®ãã¹ããæåããŸããã |
1 |
倱æã ããšãã°ã1 ã€ä»¥äžã®ãã¹ãã倱æãããå®è¡ãšã©ãŒãå ±åããããã³ãã³ã ã©ã€ã³ãç¡å¹ã ã£ãããã¹ã ãœãŒã¹ãèªã¿èŸŒããªãã£ããå®è¡ãäžæ¢ãŸãã¯åãæ¶ããããªã©ã§ãã |
åºã«ãªã vstest.console ããã»ã¹ã¯ãä»ã®å€ãè¿ãããšã¯ãããŸããã
æ€åºã§äžèŽãããã¹ããèŠã€ãããªãå Žåãå®è¡ã¯ãšã©ãŒã§ã¯ãªãèŠåãåºåããæ¢å®ã§ 0 ãè¿ããŸãã 代ããã«ããŒã ãã¹ããæ€åºãŸãã¯éžæããå®è¡ã§1ãè¿ãããããã«ããã«ã¯ãRunConfiguration.TreatNoTestsAsError ãã¡ã€ã«å
ã®trueã«.runsettingsãèšå®ããŸãã