在未安装 SDK 的情况下运行 xUnit 测试

Sve*_*tøl 4 unit-testing xunit .net-core

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

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

我该怎么办呢?

csm*_*cnz 5

添加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 });
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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