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

当我运行多个配置时,我在“流程”->“要构建的项目”->“要构建的配置”下的构建定义中定义了每个配置,这些定义是混合平台|发行版,混合平台|调试。当我运行单个配置时,我正在使用混合平台|发行版或混合平台|调试。

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

编辑:

这是日志的实际部分。我不确定searchpathroot中混合平台\发行版的来源。

我还要补充一点,我们编译到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” /结果文件根:“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” /平台:“混合平台” /风味:”调试”
正在加载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” /平台:“混合平台“/ flavor:”发布“
找不到目录“C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Mixed Platforms \ Release”。

最佳答案

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

验证测试为什么不运行的另一种方法是查看生成放置目录,然后查看是否可以在其中找到test.dll。如果不存在test.dll,则问题出在配置管理器中如何配置项目。

关于unit-testing - 在TFS 2010中,单元测试不能与多个构建配置一起运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6540203/

10-10 07:36