我想在服务器上运行一些 xUnit 测试,而不必在那里安装 .NET Core SDK。
服务器是安装了 .NET Core 运行时 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 });
}
}
您还需要添加 <GenerateProgramFile>false</GenerateProgramFile>
到您的 csproj 文件。
只需使用 dotnet publish
, 你可以使用 dotnet run "myapp.dll"
执行测试。
如果您希望在必要时灵活地覆盖记者或过滤器,您可以扩展它以传递其他参数。
这些包似乎没有与其他 xunit 包一起更新(我认为这是 v2 版本 - 现在有 v3)但这似乎仍然适用于 netcoreapp3.1 和 net5 xunit 测试应用程序。
关于unit-testing - 在未安装 SDK 的情况下运行 xUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57897167/