gpt4 book ai didi

visual-studio-2010 - 为什么在解决方案中运行所有测试时 MSTest DeploymentItem 失败?

转载 作者:行者123 更新时间:2023-12-04 02:21:48 25 4
gpt4 key购买 nike

我有一个包含多个 MSTest 项目的 Visual Studio 2010 解决方案。其中一个测试项目需要特定目录中的文件才能运行。

[TestClass]
[DeploymentItem("ReportEngine.config")]
[DeploymentItem("Report Files", "Report Files")]
public class MyReportTests { }

当我只运行这个项目(或测试类)中的测试时,这些测试就通过了。报告文件被复制到测试执行目录。当我运行解决方案中的所有测试时,这些测试失败。报告文件不会复制到测试执行目录。

为什么会有不同,我如何让两次运行部署相同的项目?

最佳答案

我最初为您提供了说明,以确保在您的测试设置中启用了部署。你说是的。

Make sure that you have deployment enabled for the test run.

  1. Edit your .testsettings in the Solution Items folder
  2. Select the Deployment category
  3. Check the "Enable deployment" option
  4. Click "Apply" and "Close"


然而,自从我上次回答后,我了解到 DeploymentItem 属性只针对方法(然后,它似乎只适用于 TestMethod s)。它永远不会像你装饰 class 那样工作。 .我也注意到你对你的问题的评论(针对语法进行了编辑)

Yes, the items are set to Copy Always, otherwise the DeploymentItem in the project test run wouldn't work.



有很多 discussion是否需要这样做 DeploymentItem工作。我怀疑在从项目中运行测试时,我们尚未确定的一些事情正在使测试通过。请删除 DeploymentItem s 完全并尝试您的两次测试运行(来自项目和来自解决方案),看看您得到了什么结果。

万一部署项目在文档中工作

确保 ReportEngine.configReportFiles\是您和 MSTest 期望他们到达的地方。相对文件路径从“RelativeRootPath”开始解析。默认情况下,这是 $(SolutionDir) .除非你在 testsettings 中覆盖它.请检查一下。

但是,默认情况下
[DeploymentItem("ReportEngine.config")]

扩展到类似的东西
[DeploymentItem("$(SolutionDir)\ReportEngine.config")]

然后,例如,
[DeploymentItem("D:\code\my-project\ReportEngine.config")]

关于visual-studio-2010 - 为什么在解决方案中运行所有测试时 MSTest DeploymentItem 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5939980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com