我的情况是我不想依赖于环境的已安装dotnet版本。理想情况下,我希望有一个独立的XUnit应用程序,可以使用该应用程序在目标环境上运行测试。
.NET Core控制台应用程序的OutputType
为Exe
,因此在独立发布后,我们可以执行已发布的可执行文件。这是可以理解的,因为“控制台”应用程序在应用程序内有一个入口点。在XUnit测试项目的情况下,我们没有入口点。
仅将<OutputType>Exe</OutputType>
添加到XUnit测试项目中并没有帮助(可以理解)
答案 0 :(得分:0)
我能够做到以下几点:
```
.
```
包括此处提到的赛跑者(注意,确实有一个入口):https://github.com/xunit/samples.xunit/blob/master/TestRunner/Program.cs
现在将应用程序发布为独立应用程序。例如,我想在Linux机器上运行用.NET Core编写的测试。示例: <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<OutputType>Exe</OutputType>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.utility" Version="2.3.1" />
</ItemGroup>
</Project>
现在让我们说一下,如果您的测试项目被命名为'Foo.Tests',您应该在发布的输出中看到一个名为'Foo.Tests'的可执行文件。通过执行'./Foo.Tests'