Mstest没有正确设置errorlevel

时间:2013-03-07 13:01:55

标签: visual-studio-2010 mstest errorlevel

我有一个很好的测试项目。我正在尝试使用mstest运行测试。这是我正在执行的命令:

命令:

echo mstest.exe /testcontainer:SecurityLogging.Tests\Logging.Tests.dll /resultsfile:%TEST_LOG_ROOT%\Execute_%TestListNode%_1.trx /detail:Owner /detail:Description /nologo /testsettings:Logging.Tests\Local.testsettings /category:"^!E2E&^!Stress&^!Perf"

我的测试失败了。如果我然后检查错误级别。它仍然是0.我做了:

if %errorlevel%==0 (
   continue;
)

并且它一直在继续。

我正在使用Visual Studio 2010.我开始挖掘,我发现了这个:

http://www.mail-archive.com/ccnet-user@googlegroups.com/msg03027.html

由于

2 个答案:

答案 0 :(得分:0)

MSTest没有失败。它执行测试很好。您的测试失败,错误由MStest处理。所以,我认为你不会得到任何%errorlevel%。

答案 1 :(得分:0)

我刚刚确认Visual Studio 2010的mstest.exe实际上在运行测试时退出errorlevel 1,其中一些失败。当所有测试通过时,它返回errorlevel 0。

运行mstest后,您可以在批处理文件中使用以下行验证这一点:

echo %errorlevel%
pause

如果您的批处理文件被另一个批处理文件调用,并且您想要返回错误级别,则可以使用if not %errorlevel% == 0 exit 1来快捷批处理文件。

否则,正如@Magoo所示,您可能在调用mstest.exe前面有一个不必要的echo