asp.net Visual Studio 2022未运行XUnit测试

ubof19bj  于 2023-03-09  发布在  .NET
关注(0)|答案(2)|浏览(322)

我已经创建了一个EntityFramework ASP.NET解决方案,我正在尝试创建一个XUnit测试项目来测试我创建的不同类。
我已经为我的Activity类创建了一个TestClass:

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);
            }
        }

    }
}

问题是,当我启动testClass时,测试确实显示在测试资源管理器中,但是VS告诉我测试没有执行,我不知道为什么,因为它没有显示任何错误或任何消息来解释它为什么没有执行

测试输出:

ozxc1zmp

ozxc1zmp1#

我看到你有这个:

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

......所以我假设您正在将现有的MSTest代码移植到xUnit,在这种情况下,您可以将MSTest的属性别名为xUnit,而不是更改代码库中的属性:

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

internal sealed class SomeDummyAttribute : Attribute {}

如果您使用的是C# 10.0或更高版本you can use global using which will be shared by all source-files in the same project.
此外,请考虑使用ShouldlyFluent Assertions,而不是Assert/Asserts类。

doinxwow

doinxwow2#

我有一个不同的问题,几乎完全相同的症状。在我的情况下,我只是错过了nuget包xunit.runner.visualstudio,我已经删除了一些nuget故障排除。
通过Visual Studio中的nuget GUI安装后,它立即再次工作。

相关问题