F# 使用纯Mono运行“dotnet测试”等效程序

F# 使用纯Mono运行“dotnet测试”等效程序,f#,mono,F#,Mono,我正在尝试F#并有一个小项目,在那里我可以运行dotnet test,但我想不安装任何来自微软的非自由软件 使用dotnet的替代方案似乎都使用非常复杂的命令,如: $ mono packages/xunit.runner.console.2.0.0/tools/xunit.console.exe build/test/CommandLine.Tests.dll 作为一个完全的新手,我没有任何暗示,在我的情况下,这些可能需要调整 我的HelloWorld.fsproj包含: <Proje

我正在尝试F#并有一个小项目,在那里我可以运行
dotnet test
,但我想不安装任何来自微软的非自由软件

使用
dotnet
的替代方案似乎都使用非常复杂的命令,如:

$ mono packages/xunit.runner.console.2.0.0/tools/xunit.console.exe build/test/CommandLine.Tests.dll
作为一个完全的新手,我没有任何暗示,在我的情况下,这些可能需要调整

我的
HelloWorld.fsproj
包含:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="HelloWorld.fs" />
    <Compile Include="HelloWorldTests.fs" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.0" />
    <PackageReference Include="xunit" Version="2.4.1" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
    <PackageReference Include="FsUnit.xUnit" Version="4.0.2" />
  </ItemGroup>

</Project>

netcoreapp3.0
假的

Mono和.NET core都有MIT许可证。现在没有理由不使用.NET core,特别是.NET core 5,它旨在统一.NET core和Mono的功能

另一方面,如果您没有使用VisualStudio(商业许可证),则项目代码中有一行不必要的代码



注意,对于RMS ish对“免费”的定义,该项目还通过软件包安装非免费软件。我认为从定义上讲,你无法完成你想要完成的事情。@LexLi我无法解释为什么.NET Core是非免费的,因为它是在麻省理工学院的许可之下。然而,我可以解释,我不知道.NETFramework(非免费)和.NETCore(MIT)之间有什么区别。
 <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />