【发布时间】:2020-11-18 15:24:37
【问题描述】:
我想在服务器上运行一些 xUnit 测试,而不必在那里安装 .NET Core SDK。
服务器是安装了 .NET Core 运行时 v2.2 的 Windows 服务器。
我该怎么办?
【问题讨论】:
-
非常模糊。什么样的测试?单元测试?单元测试应该在构建应用程序期间(例如在管道中)或在本地开发时运行。甚至是集成测试。
标签: unit-testing .net-core xunit
我想在服务器上运行一些 xUnit 测试,而不必在那里安装 .NET Core SDK。
服务器是安装了 .NET Core 运行时 v2.2 的 Windows 服务器。
我该怎么办?
【问题讨论】:
标签: unit-testing .net-core xunit
添加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 测试应用程序。
【讨论】: