【问题标题】:How to disable unit tests in Release mode under TFS如何在 TFS 下以 Release 模式禁用单元测试
【发布时间】:2012-06-25 13:27:45
【问题描述】:

我想设置 TFS 以构建我的解决方案的调试和发布版本,但仅在调试模式下运行单元测试。我尝试在我的解决方案的配置属性中禁用测试项目的构建,但无济于事。而且令人讨厌的是,在 Release 模式下测试总是会失败,因为即使文件存在,它似乎也无法找到它们......

那么有人知道如何让 TFS 仅在 Debug 模式下运行单元测试(但仍然构建 Debug 和 Release 模式)?

【问题讨论】:

    标签: visual-studio-2010 unit-testing


    【解决方案1】:

    在 VS2010 中:

    Team ExplorerProjectBuilds → 在“构建定义”中选择 Edit Build DefinitionProcess

    你应该在这里配置:

    • 1.Required → Items to Build:选择这里的项目和配置来构建,即在你的情况下发布或调试
    • 3.高级 → 禁用测试:真/假

    【讨论】:

    • 我在“编辑构建定义”中找不到“进程”选项卡。唯一的选项卡是:General、Trigger、Workspace、Build Defaults、Project File、Retension Policy。 (注意:我使用的是 VS2010 和 TFS2008。)
    • 我认为 Process 选项卡只存在于 TFS2010 中,而不存在于 TFS2008 中。 (TFS2008 改为使用设置文件。)但是,我仍然认为它不能满足我的要求。我需要同时构建 Debug 和 Release,但只为 Debug 运行单元测试。
    • 很遗憾,我身边没有 tfs2008 机器,所以 tfs2008 帮不了你。另一种可能性是在BuildBuild Configuration更改构建配置并取消选择所有单元测试项目旁边的所有Build检查。
    • 这就是我为发布版本所做的。但它没有工作...... :(奇怪的是,如果我在发布模式的构建中禁用它们,我的旧单元测试项目(从 VS2008 升级)可以正常工作。但是所有新的单元测试项目都不适用于某些人原因。而且我也没有看到 .csproj 文件之间有任何明显的区别。(它们不同,但仅与单元测试无关,它们都是默认值。)
    【解决方案2】:

    我终于找到了方法。在 TFS 构建定义文件 (.proj) 中,在列出测试列表/DLL 的部分下,只需为每个项目添加 $(Configuration) 条件,如下所示:-

    <ItemGroup>
        <MetaDataFile Condition="'$(Configuration)'=='Debug'" Include="$(BuildProjectFolderPath)/SubFolders/MyTestListFile.vsmdi">
          <TestList>My Test List Name</TestList>
        </MetaDataFile>
    
        <TestContainer Condition="'$(Configuration)'=='Debug'" Include="$(OutDir)\MyTests.dll" />
    </ItemGroup>
    

    【讨论】:

      猜你喜欢
      • 2011-01-26
      • 2021-04-09
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多