首页 > 解决方案 > 在未安装 SDK 的情况下运行 xUnit 测试

问题描述

我想在服务器上运行一些 xUnit 测试,而不必在那里安装 .NET Core SDK。

该服务器是安装了 .NET Core 运行时 v2.2 的 Windows 服务器。

我该怎么办?

标签: unit-testing.net-corexunit

解决方案


添加xunit.console nuget 包(在撰写本文时为 2.4.1 版),并在 Program.Main 中添加一个单行代码:

public class Program
{
    public static int Main()
    {
        return Xunit.ConsoleClient.Program.Main(
            new[] { typeof(Program).Assembly.Location });
    }
}

您还需要添加<GenerateProgramFile>false</GenerateProgramFile>到您的 csproj 文件中。

只需使用dotnet publish,您就可以使用dotnet run "myapp.dll"来执行测试。

如果您希望在必要时灵活地覆盖报告器或过滤器,您可以扩展它以通过其他参数。

似乎这些软件包没有与其他 xunit 软件包一起更新(我认为这是一个 v2 版本 - 现在有一个 v3),但这似乎仍然适用于 netcoreapp3.1 和 net5 xunit 测试应用程序。


推荐阅读