如何使用.runsettings部署其他测试文件?

时间:2018-05-15 17:41:18

标签: c# vstest vstest.console.exe

我从TPv1迁移到TPv2(Test Platform v2)。我使用vstest.console.exe运行我的测试。我使用.testsettings文件来部署我的测试所需的其他文件(通常它们XML包含一些数据)。我的解决方案的骨架如下:

enter image description here

我的TestSettings1.testsettings如下:

enter image description here

我使用此命令运行我的测试:

@SET LOCAL_SETTINGS=C:\data\Development\Solution14
@SET VSTEST_CONSOLE="C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/Common7/IDE/Extensions/TestPlatform/vstest.console.exe"
%VSTEST_CONSOLE% C:\data\Development\Solution14\UnitTestProject1\bin\debug\UnitTestProject1.dll ^
/Settings:%LOCAL_SETTINGS%\TestSettings1.testsettings 

使用.testsettings部署项目非常方便。

因此,由于某些原因我不能再使用.testsettings,但我可以使用.runsettingsDeploymentItem属性。

使用.testsettings我不必为每个项目添加一段代码来部署我的文件。我只使用/Settings标记vstest.console.exe,此部署适用于我想要的项目。使用DeploymentItem我应该在每个单元测试项目中使用一些代码。代码的这些部分是相同的,我不喜欢它。我不想为每个项目添加相同的代码。

问题:在不编写重复代码的情况下,为每个项目应用相同部署行为的最佳方法是什么。

目前我使用构建事件xcopy将它们复制到 DeploymentItems 文件夹(我在构建时通过mkdir创建它-event)每个 bin / Debug 文件夹。之后,我添加[DeploymentItem("DeploymentItems")],从该文件夹中部署所有文件。它看起来并不好看,因为每个.csproj有3个相同批次的构建事件。如果我添加新的.xml数据,我需要再次向每个.csproj添加新的 build-even t指令。当我使用.testsettings时,我没有遇到这个问题。

0 个答案:

没有答案