C# 在解决方案VSTest中整合多个测试项目的结果

C# 在解决方案VSTest中整合多个测试项目的结果,c#,vs-unit-testing-framework,vstest,C#,Vs Unit Testing Framework,Vstest,现在我有了一个解决方案,在Visual Studio 2017中有3个单元测试项目(4.6.2) 我已经创建了TestCategories,并使用基于TestCategories的命令提示符执行测试(通过在命令中使用“&”操作创建了单个测试类别/多个测试类别) 我制作了一个TestResults列表,并在每个项目的TestCleanup方法中不断将结果添加到列表中。此TestResult列表是全局的,可以在所有3个测试项目中访问 完成后,在程序集清理过程中,我将其写入Excel文件,并通过邮件发

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

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

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

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

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

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

现在,我的问题是:
假设我有3个测试项目A、B和C,并且在测试项目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