【问题标题】:Mstest not setting the errorlevel correctlyMstest 没有正确设置错误级别
【发布时间】:2014-12-06 08:52:42
【问题描述】:

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

谢谢

【问题讨论】:

  • 也许如果您删除了ECHO - 或者这是一个转录错误?

标签: visual-studio-2010 mstest errorlevel


【解决方案1】:

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

【讨论】:

  • 如何确定测试运行是否干净运行?我以前使用过它并且它有效。我想知道最近是否有任何更新可能会改变这一点。
【解决方案2】:

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

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

echo %errorlevel%
pause

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

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

【讨论】:

    猜你喜欢
    • 2020-09-24
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多