将多个测试项目的结果合并到一个解决方案 VSTest 中



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

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

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

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

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

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

现在,我的问题是:
假设我有 3 个 TestProjects A、B 和 C,并且在 TestProject C.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 个报告。

谢谢

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

最新更新