在TeamCity服务器上从构建文件夹运行微软测试

5
我正在尝试从TeamCity的构建文件夹中运行MS测试。主要原因是我们的应用程序使用多个配置文件(csv文件,带有'复制到输出目录'选项),这些文件从其运行文件夹中加载。这些不是测试文件,而是必需的应用程序文件,因此使用MSTest deploy属性不是一个选择。
在本地,R#和VS2013可以正确运行测试,在TeamCity(8.1)上,我遇到了一个错误-csv文件丢失。
我尝试使用.runsettings文件("Build Step configuration/MSTest run configuration file")来指定“False”,但是MSTest(12.0.21005.1)返回以下错误:
"The file 'C:\TeamCity\buildAgent\work\d6160ab253397620\tests.runsettings' has unknown format and cannot be converted to the current version."
文件非常简单(从msdn复制):
<?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文件未被复制。


我有完全相同的问题。你有没有找到解决办法? - Pedro
我正在使用您编辑过的 test.runsettings 版本,并且在 TC 9.0.3 上它现在已经工作了 - 仍然感到困惑,因为有很多关于使用 <DeploymentEnabled>False</DeploymentEnabled> 的参考资料,但是在您的工作 xml 文件中它是 <Deployment enabled="false" /> - wal
2个回答

1
Pawel,我刚刚看到你的问题,并尝试了更新版本的 .runsettings - 现在可以正常工作。如果 TC 无法看到 CSV 文件,可以在编译后的 msbuild 脚本中添加以下关键字。

<Copy SourceFiles="$(MSBuildProjectDirectory)\bin\FROM\.config"  DestinationFolder="$(MSBuildProjectDirectory)\BuildOutput\TO\.config"></Copy>


0

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

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

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

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

DeploymentItem只需要包含要复制的文件的名称,因为它相对于构建输出文件夹,并将该项复制到Test Run文件夹中。

在你的情况下,我猜应该是这样的:[DeploymentItem("Data.csv")]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接