【问题标题】:Consolidate Results from multiple test projects in a solution VSTest将多个测试项目的结果整合到一个解决方案中 VSTest
【发布时间】:2017-10-26 02:35:56
【问题描述】:

现在我有一个解决方案,它在 Visual Studio 2017 (4.6.2) 中有 3 个单元测试项目。

我已经创建了 TestCategories 并使用基于 TestCategories 的命令提示符执行测试(单个测试类别/多个测试类别,通过在命令中使用“&”操作)。

我列出了 TestResults,并在每个单独项目的 TestCleanup 方法中不断将结果添加到列表中。此 TestResult 列表是全局的,可以在所有 3 个测试项目中访问。

一旦完成,在程序集清理中,我会将其写入 Excel 文件并邮寄到组织中的电子邮件组。

当我这样做时,我收到了来自 3 个测试项目的 3 封邮件。

为避免这种情况,我仅在 1 个测试项目中添加了邮件代码,并确保从该测试项目运行测试(即使我不需要运行该测试)。

现在,我的问题是:
假设我有 3 个 TestProjects A、B 和 C,并且我在 TestProject C 的 Assembly Cleanup 中有邮件逻辑。
1. 像 AssemblyCleanup 一样,我们是否有一个地方知道所有 A 或 B 或 C 测试项目都已完成测试的执行?
2. 假设如果我只在没有邮件逻辑的 TestProject A 中运行测试,我就没有收到邮件。 (因为邮件逻辑在不同的项目中可用 - C。)
3. 如果我向所有 3 个项目(A、B 和 C)添加邮件逻辑,它会向我发送 3 封邮件。我必须手动合并。
4. 如果我对每个程序集(A、B、C)执行了几个测试。我如何在程序集清理中知道在程序集 B 或 C 中仍有一些待执行的测试要执行? - 基于此,我可以执行邮件逻辑,如果还有一些测试要从其他程序集中执行,我将在当前程序集中跳过它,并将其留在 B 或 C 中。同样,我将编写相同的逻辑3个组件。通过这样做,我将只获得所有 3 个程序集/项目中所有测试的 1 个报告。

谢谢

【问题讨论】:

    标签: c# vs-unit-testing-framework vstest


    【解决方案1】:

    您可以使用 /Logger:trx 选项来获取测试结果文件。 例如。 vstest.console a.dll b.dll /logger:trx

    【讨论】:

      猜你喜欢
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多