在解决方案VSTest中

时间:2017-06-19 21:21:46

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

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

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

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

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

当我这样做时,我从3个测试项目中收到3封邮件。

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

现在,我的问题是:
假设我有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个报告。

由于

1 个答案:

答案 0 :(得分:0)

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