0

我有一个构建良好的测试项目。我正在尝试使用 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

谢谢

4

2 回答 2

0

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

于 2013-03-07T13:29:44.340 回答
0

我刚刚确认 Visual Studio 2010 的 mstest.exe 在运行测试并且其中一些失败时确实以错误级别 1 退出。当所有测试通过时,它返回错误级别 0。

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

echo %errorlevel%
pause

如果您的批处理文件正在被另一个批处理文件调用,并且您想将错误级别传回,那么您可以使用if not %errorlevel% == 0 exit 1快捷方式来创建批处理文件。

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

于 2014-12-06T00:52:42.107 回答