DeploymentItem(Path,outputDirectory)在新的单元测试项目中不起作用

DeploymentItem(Path, outputDirectory) not working in new Unit-Test project

我目前正在处理项目中的任务。我们在解决方案存储库中有许多测试项目,它们使用 DeploymentItem() 属性(所有测试都在工作)。

我的问题:

我在存储库的根目录中创建了一个新目录,目录中是一个新的测试项目。新测试没有部署项目或其他东西,并且使用了错误的输出路径。(所有测试都不起作用,因为没有项目正在部署)

所有旧测试项目都在使用 "TestResults" 目录。在每 build/run 次测试之后,都会创建一个新的子目录,其名称类似于 "Deploy_xxx_Date"。 我的测试项目使用默认目录 bin/Debug 作为输出路径。我如何更改我的项目也自动使用默认的 TestResults 目录?部署项目的最佳方式是什么?

提示:

旧测试的输出: C:..\RootOfProject\SolutionDir\TestResults\generatedFolderWithDeploymentItems

我的测试输出: C:..\RootOfProject\Tests\ProjectDir\bin\Debug\NothingDeployed

我的项目也应该有这个输出目录: C:..\RootOfProject\SolutionDir\TestResults\FolderWithDeploymentItems

测试后的错误是运行:

Test file 'C:Tests\TESTPROJECT\bin\Debug\ItemWhichShouldBeDeployed' does not exist.

您应该更改测试项目中需要复制为部署项的项的属性。右键单击该项目并设置以下选项 Build Action : NoneCopy to output Directory : Copy always or Copy if newer(见下文),保存项目并重试。

@vendettamit 它奏效了,谢谢。现在我有另一个问题: 我在不同的测试目录中有不同的测试项目。 ...\rootRepository\anotherDirectory\Testing\Testproject1.csproj ...\rootRepository\NewTestDirectoryWhereAllTestsFrom_AnotherDirectory_ShouldBePostponed\Testproject2Copy_ThisIsAnOtherTestProject.csproj

如果我只 运行 测试项目 "Testproject2Copy_ThisIsAnOtherTestProject.csproj" 一切正常,但如果我 运行 "Testproject2Copy_ThisIsAnOtherTestProject.csproj" 和 "Testproject1.csproj" 在一起,我得到所有在 Testproject2Copy_ThisIsAnOtherTestProject.csproj 中测试错误: Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException: Assert.Fail 失败。测试文件'......\TestResults\Deploy_xxxDate\Out..\example.cmd'不存在。中止测试执行。