答案 0 :(得分:1)
我发现三步消除很有用:
测试是否在Visual Studio开发环境中运行?
测试是否在本地的msbuild中运行?
测试是否在构建服务器上的msbuild中运行?
我使用下面的build.cmd脚本在我的本地计算机上运行msbuild,该环境与TFS构建服务器将使用的环境非常匹配。
@setlocal
SET MSBUILDVER=v4.0.30319
SET MSBUILDEXE=%FrameworkDir%%MSBUILDVER%\MSBuild.exe
SET builduri=local
%MSBUILDEXE% BuildDefinitions\TFSBuild.proj %*
注意:必须从Visual Studio 2010命令提示符窗口运行此脚本:
开始 - >所有程序 - > Microsoft Visual Studio 2010 - > Visual Studio工具 - > Visual Studio命令提示符(2010)
通常,在TFSBuild.proj中设置true应该会导致单元测试在构建中列出的任何解决方案中自动运行,但听起来这对你不起作用?
如果从命令shell传递命令行选项/ p:RunTest = true到msbuild会发生什么?
如果需要,您应该能够通过TFSBuild.rsp文件向服务器构建添加自定义TFS构建命令行选项,但RunTest不一定非必要。
TFS构建服务器应自动创建.trx结果文件 - 通过Visual Studio中的Build Explorer检查构建结果 - View Test Results将在VS中打开.trx文件。
不确定您的其他特定问题的解决方案,但我会尝试在本地命令窗口中运行构建,以更清楚地了解构建期间发生的情况。 错误消息将显示为红色文本,警告消息显示为黄色文本,许多其他中间构建步骤信息显示为灰色文本。
关于TFS构建主题,有很多好的博客文章 - Aaron Hallberg的博客(blogs.msdn.com/b/aaronhallberg)将是一个很好的起点。此外,MSDN在TFS / MS Build上有很多很好的信息 - 例如:Running Builds in Team Foundation Build