Paw*_*ski 5 .net teamcity mstest
我正在尝试从TeamCity上的build文件夹运行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'格式未知,无法转换为当前版本."
该文件很简单(从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>
Run Code Online (Sandbox Code Playgroud)
在过去的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>
Run Code Online (Sandbox Code Playgroud)
...但它仍然不起作用:测试在自定义文件夹中运行,并且不复制csv文件.
小智 0
您说不能使用 MSTest 部署属性,但我遇到了同样的问题,并使用 DeploymentItem 属性解决了它。
我的部署项不是 CSV,而是自动生成的 DLL(XmlSerializer DLL),它在构建期间复制到输出文件夹,并且需要位于测试运行文件夹中。
在 Visual Studio 中我还使用了 RunSettings 选项<DeploymentEnabled>False</DeploymentEnabled>,但找不到让 TeamCity 使用此文件的方法。
所以最后我向每个 TestClass 添加了一个 DeploymentItem 并解决了问题。
DeploymentItem 只需包含要复制的文件的名称,因为它与构建输出文件夹相关,并将项目复制到测试运行文件夹。
在你的情况下,我想它会是这样的:[DeploymentItem("Data.csv")]
| 归档时间: |
|
| 查看次数: |
1609 次 |
| 最近记录: |