如何解决自动构建-如果NUnit测试失败,则停止构建
|| 我有一个简单的批处理文件,该文件调用MSBuild来构建我的Visual Studio解决方案,然后运行该解决方案的NUnit测试,然后使用Wix创建一个MSI。但是,我无法弄清楚如果任何单元测试失败,如何停止构建过程。 我尝试了以下方法:nunit-console ../test.nunit
echo %ERRORLEVEL%
但是,不管单元测试是通过还是失败,%ERRORLEVEL%始终为0。是否有另一种方法可以轻松地确定任何测试是否失败?我正在使用NUnit 2.5.9。
解决方法
叫我懒,但我只是使用MSBuildTasks及其NUnit Task。然后,只需设置想要的
ContinueOnError
属性即可。
<NUnit ContinueOnError=\"true\" Assemblies=\"@(TestAssemblies)\" OutputXmlFile=\"$(TestResultsRoot)\\nunit_results.xml\" ToolPath=\"$(TeamBuildDependenciesPath)\\NUnit\\\">
<Output TaskParameter=\"ExitCode\" PropertyName=\"NUnitResult\" />
</NUnit>
, 经过一段时间的搜索,结果发现问题出在我的开发过程中的某个地方,为ERRORLEVEL变量分配了一个值。因此,当我写“ 3”时,它报告的是ERRORLEVEL变量,而不是实际的ERRORLEVEL退出代码。
我只是通过关闭控制台并重新打开来解决此问题。现在,当单元测试失败时,退出代码大于0。如果所有测试通过,则退出代码等于0。
编辑:
我将其从脚本中完全删除。现在我改为在测试项目的构建后事件中添加“ 4”。这样,当我使用MSBuild构建解决方案时,它将自动运行单元测试并在测试失败时报告错误。在Visual Studio中进行构建时,这种方法还会导致在单元测试失败时将错误添加到错误列表中,这对于更快地识别新错误很有用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。