我想在服务器上运行一些xUnit测试,而无需在服务器上安装.NET Core SDK。该服务器是一个已安装.NET Core runtime v2.2的Windows服务器。我该如何做呢?
添加 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 });
}
}
您还需要在csproj文件中添加<GenerateProgramFile>false</ GenerateProgramFile>
只需使用dotnet publish
,然后可以使用dotnet run "myapp.dll"
来执行测试。
如果需要灵活性以覆盖报告器或过滤器,则可以将其扩展以通过其他参数传递。
似乎这些软件包没有随其他xunit软件包一起更新(我认为这是v2版本 - 现在有v3),但这仍然似乎适用于netcoreapp3.1和net5 xunit测试应用程序。