我想拥有MSTest(老实说,此时我会采取任何措施)在构建后运行我的测试,然后如果任何测试失败,则生成Visual Studio识别并允许的标准file(lineno): message
输出我直接走向失败点。
或者,如果可能,那么在成功构建之后,我希望“在解决方案中运行所有测试”Visual Studio命令自动启动。
据我所知,这是不可能的。 MSTest的命令行版本没有生成正确格式化的输出(据我所知,NUnit或xUnit也没有),所以当我将MSTest添加到我的项目的Post Build时,我仍然需要滚动,寻找那个失败。只要我记得在构建完成时点击Ctrl-R,A
,in-IDE版本就可以了。
答案 0 :(得分:1)
您可以通过在项目文件中创建自定义目标而不是使用预先烘焙的PostBuild目标来获得所需内容。将这样的内容添加到项目文件中,将其编辑为XML,
<Target Name="RunUnitTests"
AfterTargets="CoreBuild">
<Exec
Command="mstest /testcontainer:$(OutDir)\PathToUnitTests\UnitTests.dll"
CustomErrorRegularExpression="^Failed"
/>
</Target>
您需要正确设置测试程序集的路径或您正在使用的其他任何方法(测试配置文件等),您可能需要调整正则表达式,从此处的内存开始......
这将运行mstest,类似于你在PostBuild中可能做的事情,但增加了MSBuild(驱动C#构建系统的能力)来检测它应该考虑错误的输出字符串的能力。 CustomWarningRegularExpression也有类似的参数。
如果您想在多个项目中分享,请查看“MSBuild Imports”
答案 1 :(得分:1)
我已经切换到xUnit,并且minor change到他们的MSBuild单元测试运行器,我得到了我想要的。