我从TPv1迁移到TPv2(Test Platform v2)。我使用vstest.console.exe
运行我的测试。我使用.testsettings
文件来部署我的测试所需的其他文件(通常它们XML
包含一些数据)。我的解决方案的骨架如下:
我的TestSettings1.testsettings
如下:
我使用此命令运行我的测试:
@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
,但我可以使用.runsettings
和DeploymentItem
属性。
使用.testsettings
我不必为每个项目添加一段代码来部署我的文件。我只使用/Settings
标记vstest.console.exe
,此部署适用于我想要的项目。使用DeploymentItem
我应该在每个单元测试项目中使用一些代码。代码的这些部分是相同的,我不喜欢它。我不想为每个项目添加相同的代码。
问题:在不编写重复代码的情况下,为每个项目应用相同部署行为的最佳方法是什么。
目前我使用构建事件和xcopy
将它们复制到 DeploymentItems 文件夹(我在构建时通过mkdir
创建它-event)每个 bin / Debug 文件夹。之后,我添加[DeploymentItem("DeploymentItems")]
,从该文件夹中部署所有文件。它看起来并不好看,因为每个.csproj
有3个相同批次的构建事件。如果我添加新的.xml
数据,我需要再次向每个.csproj
添加新的 build-even t指令。当我使用.testsettings
时,我没有遇到这个问题。