1

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

我的问题:

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

所有旧的测试项目都使用“TestResults”目录。每次构建/运行测试后,都会创建一个名为“Deploy_xxx_Date”的新子目录。我的测试项目使用默认目录 bin/Debug 作为输出路径。如何更改我的项目也自动使用默认的 TestResults 目录?哪个是部署项目的最佳方式?

暗示:

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

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

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

测试运行后的错误:

测试文件“C:Tests\TESTPROJECT\bin\Debug\ItemWhichShouldBeDeployed”不存在。

4

2 回答 2

0

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

在此处输入图像描述

于 2019-12-27T15:36:42.827 回答
0

@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' 不存在.. 中止测试执行。

于 2020-01-09T12:54:24.847 回答