[SOLVED] Visual Studio 2022 not running XUnit tests

Issue

I’ve created a EntityFramework ASP.NET solution and i’m trying to create a XUnit test project to test my differents classes i’ve created.

I’ve created a TestClass for my Activity Class :

using LADS_Model;
using LADS_WebUI.Controllers;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.Generic;
using Xunit;
using Assert = Microsoft.VisualStudio.TestTools.UnitTesting.Assert;

namespace LADS_XUnit
{
    public class UnitTest_Activity
    {
        [TestClass]
        public class ActivityController
        {
            private List<Activity> GetTestActivities()
            {
                var testActivities = new List<Activity>();
                testActivities.Add(new Activity { Id = 1, Name = "Chaussure" });
                testActivities.Add(new Activity { Id = 2, Name = "Crevettes" });
                testActivities.Add(new Activity { Id = 3, Name = "Sandwich" });
                return testActivities;
            }

            [TestMethod]
            public void GetAllActivities_ShouldReturnAllActivities()
            {
                var testActivities = GetTestActivities();
                var controller = new ActivityController();

                var result = controller.GetTestActivities();
                Assert.Equals(testActivities.Count, result.Count);
            }
        }


    }
}

The problem is that when I launch my testClass, I do have the Test showing up in the test Explorer but VS tells me that the test did not execute and I have no idea why because it’s not showing any errors or any messages to explain why it didnt execute

capture of my test view

Output of Tests :
Output Tests

Solution


I see you have this:

using Assert = Microsoft.VisualStudio.TestTools.UnitTesting.Assert;

…so I assume you’re porting existing MSTest code to xUnit, in which case rather than changing the attributes in your code-base, you could alias MSTest’s attributes to xUnit:

using TestClassAttribute  = SomeDummyAttribute;
using TestMethodAttribute = Xunit.FactAttribute;

internal sealed class SomeDummyAttribute : Attribute {}

If you’re using C# 10.0 or later you can use global using which will be shared by all source-files in the same project.

Also, consider using Shouldly or Fluent Assertions instead of the Assert/Asserts classes.

Answered By – Dai

Answer Checked By – Cary Denson (BugsFixing Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *