【问题标题】:Run MS tests from the build folder on TeamCity server从 TeamCity 服务器上的 build 文件夹运行 MS 测试
【发布时间】:2014-08-08 14:36:52
【问题描述】:

我正在尝试从 TeamCity 的构建文件夹中运行 MS 测试。

主要原因是我们的应用程序使用了几个配置文件(带有“复制到输出目录”选项集的 csv 文件),这些文件是从其运行文件夹加载的。这些不是测试文件,而是必需的应用程序文件,因此不能使用 MSTest 部署属性。

在本地,R# 和 VS2013 正确运行测试,在 TeamCity (8.1) 上我收到错误 - 缺少 csv 文件。

我尝试使用 .runsettings 文件(“构建步骤配置/MSTest 运行配置文件”)来指定 <DeploymentEnabled>False</DeploymentEnabled> 但是 MSTest (12.0.21005.1) 返回此错误:

“文件'C:\TeamCity\buildAgent\work\d6160ab253397620\tests.runsettings'格式未知,无法转换为当前版本。”

文件非常简单(从 m​​sdn 复制):

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- MSTest adapter -->
  <MSTest>
    <MapInconclusiveToFailed>True</MapInconclusiveToFailed>
    <CaptureTraceOutput>false</CaptureTraceOutput>
    <DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
    <DeploymentEnabled>False</DeploymentEnabled>
  </MSTest>
</RunSettings>

在过去的 2 个小时里,我一直在努力解决这个问题,我不敢相信,这么简单的事情竟然用 MSTest 来完成。

[编辑]

文件看起来应该是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<TestSettings
  id="b8968a45-0b6a-40a9-bcf7-7573da114965"
  name="MSTest"
  enableDefaultDataCollectors="false"
  xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Description><!--_locID_text="Description1"-->These are default test settings for a local test run.</Description>
  <Deployment enabled="false" />
</TestSettings>

...但它仍然不起作用:测试在自定义文件夹中运行,并且不会复制 csv 文件。

【问题讨论】:

  • 我也有同样的问题。您是否偶然找到了解决方案?
  • 我正在使用您的 test.runsettings 的编辑版本,现在它在 TC 9.0.3 上为我工作 - 仍然混淆了很多使用 &lt;DeploymentEnabled&gt;False&lt;/DeploymentEnabled&gt; 然而在你的工作 xml 文件中它是 &lt;Deployment enabled="false" /&gt;

标签: .net teamcity mstest


【解决方案1】:

Pawel,偶然发现了你的问题,然后:

  1. 尝试了您的 .runsettings 更新版本 - 工作正常
  2. 如果 TC 没有看到 CSV 文件,可能会在 msbuild 脚本中添加以下键 - 编译后:

&lt;Copy SourceFiles="$(MSBuildProjectDirectory)\bin\FROM\.config"  DestinationFolder="$(MSBuildProjectDirectory)\BuildOutput\TO\.config"&gt;&lt;/Copy&gt;

【讨论】:

    【解决方案2】:

    你说你不能使用 MSTest 部署属性,但我遇到了同样的问题,使用 DeploymentItem 属性解决了它。

    我的部署项不是 CSV,而是一个自动生成的 DLL (XmlSerializer DLL),它在构建过程中被复制到输出文件夹,需要在测试运行文件夹中。

    在 Visual Studio 中,我还使用了 &lt;DeploymentEnabled&gt;False&lt;/DeploymentEnabled&gt; 的 RunSettings 选项,但找不到让 TeamCity 使用此文件的方法。

    所以最后我为每个 TestClass 添加了一个 DeploymentItem 并解决了问题。

    DeploymentItem 只需要包含您要复制的文件的名称,因为它与构建输出文件夹相关,并将项目复制到测试运行文件夹。

    在你的情况下,我想它会是这样的:[DeploymentItem("Data.csv")]

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多