Microsoft.Testing.Platform 退出代码

Microsoft.Testing.Platform 使用已知的退出代码来传达测试失败或应用错误。 退出代码从 0 开始,并且是非负数。 请考虑下表,其中详细说明了各种退出代码及其相应的原因:

退出代码 详细信息
0 0 退出代码指示成功。 选择运行的所有测试都运行到完成,并且没有错误。
1 1 退出代码指示发生未知错误,并充当全部捕获。 若要查找其他错误信息和详细信息,请查看输出。
2 退出代码 2 用于指示至少已发生一次测试失败。
3 退出代码 3 指示测试会话已中止。 例如,可以使用 Ctrl+C 中止会话。
4 退出代码 4 指示已用扩展的设置无效,并且测试会话无法运行。
5 退出代码 5 指示传递给测试应用的命令行参数无效。
6 退出代码 6 指示测试会话正在使用未实现的功能。
7 退出代码 7 指示测试会话无法成功完成,并且可能已崩溃。 这可能是由通过测试控制器扩展点运行的测试会话引起的。
8 退出代码 8 指示测试会话运行了零次测试。
9 退出代码 9 指示违反了已执行测试的最低执行策略。
10 退出代码 10 指示测试适配器 Testing.Platform Test Framework、MSTest、NUnit 或 xUnit 由于与测试本身无关的基础结构原因而无法运行测试。 例如无法创建测试所需的测试固定例程。
11 退出代码 11 指示如果依赖进程退出,测试进程将退出。
12 退出代码 12 指示测试会话无法运行,因为客户端不支持任何受支持的协议版本。

若要启用详细日志记录并排查问题,请参阅 Microsoft.Testing.Platform 诊断扩展

忽略特定退出代码

Microsoft.Testing.Platform 默认情况下,设计为严格,但允许配置。 因此,用户可以决定应忽略哪些退出代码(将返回退出代码 0 而不是原始退出代码)。

若要忽略特定的退出代码,请使用 --ignore-exit-code 命令行选项或 TESTINGPLATFORM_EXITCODE_IGNORE 环境变量。 接受的有效格式是要忽略的退出代码的分号分隔列表(例如,--ignore-exit-code 2;3;8)。 一种常见方案是,测试失败不应导致非零退出代码(这对应于忽略退出代码 2)。