在TFS 2010中,不使用多个构建配置运行单元测试

时间:2011-06-30 19:41:07

标签: unit-testing tfs msbuild tfs2010

我在TFS Buildprocess中使用MSBuild,使用DefaultTemplate构建同一解决方案的多个配置(调试/发布)。当我只构建版本或仅调试时,运行单元测试,但是当我使用两种配置运行构建时,单元测试不会运行。

当我运行多个配置时,我将每个配置定义在Process->下的构建定义中。要建立的项目 - >构建混合平台的配置|发布,混合平台|调试。当我运行单个配置时,我使用混合平台|发布或混合平台|调试。

我无法将整个日志放在这里(它超过6000行),但它似乎找不到任何testAssemblies。

修改

以下是日志的实际部分。我不确定在searchpathroot中混合平台\ Release的来源。

我还应该补充一点,我们编译到Source的文件夹中,因为我们的一些脚本只能在该布局中工作。

仅调试(有效)

运行测试程序集的MSTest C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ MSTest.exe / nologo / usestderr /testSettings:"C:\Builds\6\ProductName\BuildName\Sources\Product\Local.testsettings“/ searchpathroot :“C:\ Builds \ 6 \ ProductName \ BuildName \ Sources”/ resultsfileroot:“C:\ Builds \ 6 \ ProductName \ BuildName \ TestResults”/ testcontainer:“C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Test \ UnitTestCommon \ bin \ Debug \ UnitTestCommon.dll“/ testcontainer:"C:\Builds\6\ProductName\BuildName\Sources\Test\UnitTestCommon\bin\Release\UnitTestCommon.dll”/ testcontainer:“C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Test \ UnitTestWCF \ bin \ Debug \ UnitTestWCF.dll“/ testcontainer:"C:\Builds\6\ProductName\BuildName\Sources\Test\UnitTestWCF\bin\Release\UnitTestWCF.dll”/ publish :“http://dctfs2010.company.dc:8080 / tfs / Product”/ publishbuild:“vstfs:/// Build / Build / 964”/ teamproject:“ProductName”/ platform:“Mixed Platforms”/ flavor:“调试” 正在加载C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Product \ Local.testsettings ... 正在加载C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Test \ UnitTestCommon \ bin \ Debug \ UnitTestCommon.dll ... 正在加载C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Test \ UnitTestCommon \ bin \ Release \ UnitTestCommon.dll ...

调试和发布(不起作用)

运行测试程序集的MSTest C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ MSTest.exe / nologo / usestderr /testSettings:"C:\Builds\6\ProductName\BuildName\Sources\Product\Local.testsettings“/ searchpathroot :“C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Mixed Platforms \ Release”/ resultsfileroot:“C:\ Builds \ 6 \ ProductName \ BuildName \ TestResults”/ testcontainer:“C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Test \ UnitTestCommon \ bin \ Debug \ UnitTestCommon.dll“/ testcontainer:"C:\Builds\6\ProductName\BuildName\Sources\Test\UnitTestCommon\bin\Release\UnitTestCommon.dll”/ testcontainer:“C :\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Test \ UnitTestWCF \ bin \ Debug \ UnitTestWCF.dll“/ testcontainer:”C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Test \ UnitTestWCF \ bin \ Release \ UnitTestWCF .dll“/publish:"http://dctfs2010.company.dc:8080/tfs/Product”/ publishbuild:“vstfs:/// Build / Build / 962”/ teamproject:“ProductName”/ platform:“Mixed Platforms “/ flavor:”发布“ 找不到目录“C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Mixed Platforms \ Release”。

2 个答案:

答案 0 :(得分:0)

如果单击解决方案的属性(作为构建的一部分构建的解决方案)。您将拥有配置管理器。在配置管理器中,您将能够看到“调试”,“已发布”,“混合”等您可能已定义的任何其他配置。您是否可以看到检查的测试项目是否在混合配置中构建?如果没有构建,则test.dll将不可用,这意味着,MSBuild将无法运行任何测试。

验证测试未运行原因的另一种方法是查看构建放置目录,看看是否可以在那里看到test.dll。如果test.dll不存在,则问题在于如何在配置管理器中配置项目。

答案 1 :(得分:0)

结果我的outputDirectory设置错误,我们的项目是如何编译的。这是searchpathroot问题的来源。