我们有一个Visual Studio 2008解决方案,其中包含大量项目。对于当前产品,仅使用其中一些项目。
我们为该产品创建了一个构建配置,因此我们不必在解决方案中构建每个项目。
我希望能够轻松运行与此构建相关的所有单元测试。目前我们不关心的项目有大量测试。因为这些项目不在构建中,所以它们不会被编译,因此我们无法测试它们。
是否有更简单的方法来定义应该运行哪些测试,而不仅仅是从测试视图中挑选和选择它们?
答案 0 :(得分:1)
您可以创建一些只编译特定项目的msbuild脚本,并且可以为每个场景创建一个脚本。
例如
对于2个C#项目A和B,有2个测试AT和BT:
<if condition="$(BuildA)"> <!-- If Building Project A -->
<csc ... "A" /> <!-- Build A project -->
</if>
<if condition="$(BuildA)"> <!-- If Building Project A -->
<csc ... "AT" /> <!-- Build AT project -->
<exec "AT" ... /> <!-- Run AT tests -->
</if>
然后运行已构建的测试。
答案 1 :(得分:1)
使用* .csproj文件,在文本编辑器中打开它,并添加您自己的MSBuild任务,以在AfterBuild目标中运行单元测试。类似的东西:
<Target Name="AfterBuild">
<Exec Command="mstest.exe /detail:errormessage /detail:errorstacktrace /runconfig:$(TestRunConfig) /testcontainer:[relative path to your test assembly DLL] /resultsfile:UnitTestResults.trx" />
</Target>