dotnet 使用 MSTestRunner 将单元测试制作为独立可执行文件

💡 原文中文,约3300字,阅读约需8分钟。
📝

内容提要

本文介绍了使用MSTestRunner功能制作独立可执行文件的方法,以便在无SDK或开发环境下执行单元测试。还提供了配置步骤和示例,并介绍了将可执行文件发布到Linux系统的便利性。

🔎

延伸解读

适用场景与优势

将单元测试制作为独立可执行文件,主要适用于无SDK或开发环境的场景。例如,在纯净系统或大批量设备上运行测试时,无需安装.NET SDK或Visual Studio,直接执行可执行文件即可。此外,独立可执行文件便于分发给测试同事,进行批量测试,也方便与现有性能调试工具对接,因为这类工具通常对独立应用程序支持更好。

配置要点与注意事项

要使用MSTestRunner,需创建控制台项目,安装MSTest NuGet包(如3.2.0版本),并确保项目输出类型为Exe。关键配置是添加<EnableMSTestRunner>true</EnableMSTestRunner>属性,并删除原有的Program文件。这样构建后即可生成可执行文件。注意,发布时可通过--self-contained true生成独立框架的可执行文件,便于在无开发环境的系统上运行。

跨平台测试与过滤

通过命令行发布,如dotnet publish -c release -r linux-x64 --self-contained true,可将测试可执行文件部署到Linux系统(如UOS)运行。这允许在无开发环境的系统上进行测试,并批量比较不同系统版本的行为差异。若需只运行部分测试方法,可在执行时添加--filter参数,用法与dotnet test相同,只需将命令替换为可执行文件路径。

❓

Q&A

MSTestRunner 是什么?它有什么作用?

MSTestRunner 是 .NET 中的一项功能,它允许将单元测试项目构建为独立的可执行文件。这样,单元测试就可以在没有安装 SDK 或开发环境的纯净系统中运行,方便分发给测试人员或在批量设备上执行。

如何将单元测试项目配置为独立可执行文件?

首先创建一个控制台项目,安装 MSTest NuGet 包(如版本 3.2.0),确保项目输出类型为 Exe,然后在 csproj 文件中添加 <EnableMSTestRunner>true</EnableMSTestRunner> 配置,并删除原有的 Program 文件。之后构建项目即可生成可执行文件。

将单元测试制作为可执行文件后,如何发布到 Linux 系统?

可以使用命令行进行独立发布,例如:dotnet publish -c release -r linux-x64 --self-contained true。这样生成的可执行文件可以在 Linux 系统上运行,包括 UOS 等国产系统。

在无开发环境的系统上运行单元测试可执行文件有什么好处?

可以在纯净环境中运行单元测试,无需安装 SDK 或开发工具。方便将测试分发给测试同事,在大批量设备上统一执行,也便于与现有的性能调试工具对接,因为独立应用程序更容易被这些工具支持。

如何只运行单元测试可执行文件中的部分测试方法?

可以在执行可执行文件时添加 --filter 参数和相应的条件内容,用法与 dotnet test 的 --filter 相同,只需将命令行前面的 dotnet test 替换为生成的可执行文件即可。

在哪里可以获取本文的示例源代码?

可以通过 gitee 或 github 获取。先创建一个空文件夹,使用命令行进入该文件夹,然后执行 git init,添加远程仓库(gitee 或 github 的地址),再执行 git pull 拉取指定提交的代码。具体命令参考文章内容。

🏷️

标签

➡️

继续阅读