Description
This is a continuation of #697 (and #872 which attempted to resolve it).
A large amount of compiler and FSharp.Core tests are run with older, slower infrastructure. They're difficult for OSS contributors to work with, it's also unclear if everything can be reported correctly in Azure CI, andt hese tests are not usable within an IDE that understands standard unit test frameowrks such as NUnit or xUnit.
As #872 showed, the path to migration is not simple. However, this doesn't mean that small chunks cannot be moved incrementally. There are two NUnit-based test projects for the compiler and FSharp.Core that are relatively easy to add and modify tests for:
Compiler:
https://github.com/dotnet/fsharp/tree/master/tests/FSharp.Compiler.UnitTests and https://github.com/dotnet/fsharp/tree/master/tests/fsharp/Compiler/Language
Includes useful utilities such as:
- Compiling a single arbitrary string of F# code and verifying that it passes or fails
- Comparing the emitted IL when compiling an arbitrary string of F# code with user-provided IL (for optimization testing)
FSharp.Core:
https://github.com/dotnet/fsharp/tree/master/tests/FSharp.Core.UnitTests
Includes a useful utility to verify the FSharp.Core API public API surface area.
In theory, it should be fairly straightforward to pick a small thing that's being tested under /fsharpqa
and migrate that and only that to a new set of tests in one of the above NUnit test areas.