create unit tests for .net 6.0

Viewed 3936

I created a .Net 6 class library and now I am trying to create a test project.
a .net 6 test project is not available. Online I found the information to use .Net Framework or .Net core in order to test.

I created a .Net Framework 4.8 test project an referenced my class library.

I receive the Compiler error:

Project '..\CircularList\CircularList.csproj' targets 'net6.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v4.8'. UnitTests

How do I do Unit tests then? Is there any way to target .Net 6.0 from .Net Framework 4.8?

4 Answers

I guess that must have been the answer. Don't use the project template "Unit Test Project (.NET Framework)" if you want to use test a .net6 library.

Use a more up-to-date template in the project creation wizard. There are newer MSTest ones, but one could also take advantage of better templates like the xUnit one.

None of the previous answers worked for me. I was trying to add a Test project for my Windows Forms (.NET 6.0) project. Tried all of the available project templates, and none worked.

Just needed to modify the test project .csproj (by double clicking the Test Project), and change TargetFramework from net6.0 to net6.0-windows.

I created a NET 6.0 class library and received the same message.

I went into properties, just to double check that my project and my test project were set the same and noticed that the Target OS was not set in my library.

It was in my project, but not in my class library.

Once I changed my class library "Target OS" - to be windows, the same as my project, the error messages went away.

This is A solution, not likely THE only solution:

I also have a .NET 6.0 project that I would like to test.

With the project template picker, I picked the C# NUnit Test for .NET Core. When advancing to next screen, there was a dropdown that allowed me to pick a Target framework. .NET 6.0 was the default option.

Related