0

我想有MSTest的(说实话,我会采取任何在这一点上)运行我的测试生成后,然后如果任何测试失败,产生标准file(lineno): message输出的Visual Studio识别并让我直来直去失败点。我可以使用VS2010进行自动化MSTest测试吗?

或者,如果可能的话,那么成功构建后,我想“运行方案中的所有测试” Visual Studio的命令自动触发。

据我所知,这是不可能的。 MSTest的命令行版本不会生成正确的格式化输出(并且据我所知,NUnit或xUnit也没有),所以当我将MSTest添加到项目的Post Build时,我仍然需要滚动,寻找那个失败。只要我记得在构建完成时点击Ctrl-R,A,IDE内版本就可以正常工作。

+0

你可能会在这里找到一些帮助[post](http://stackoverflow.com/questions/3865593/running-unit-tests-after-local-build-with-visual-studio-2010) – 2011-05-29 06:52:11

+0

谢谢,它自从我需要一个宏,已经有好几年了,我忘了VS可以做到这一点。我认为这将是我的解决方案,直到页面上提到的扩展更加成熟。 – moswald 2011-05-29 12:05:07

回答

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进口”

+0

非常接近。但是,它将我的.csproj中的行列为错误始发行。修剪输出:'proj.csproj(140,5):错误:[errorstacktrace] =在Unit_Tests。 ... .SomethingTest()in ... \ FileIActuallyCareAbout.cs:line 100' – moswald 2011-05-29 02:22:20

+0

(这是自定义正则表达式“^ \ [errorstacktrace \]”。) – moswald 2011-05-29 02:28:02

相关问题