我创建了一个EntityFramework ASP.NET解决方案,现在我正在尝试创建一个XUnit测试项目来测试我所创建的不同类。
我已经为我的Activity类创建了一个TestClass:
问题在于当我启动我的testClass时,测试确实出现在测试资源管理器中,但VS告诉我测试未执行,我不知道为什么,因为它没有显示任何错误或任何消息来解释为什么它没有执行。
我已经为我的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告诉我测试未执行,我不知道为什么,因为它没有显示任何错误或任何消息来解释为什么它没有执行。
[TestMethod]
和[TestClass]
不是 xUnit 的标注。xUnit 在测试方法上使用[Fact]
,而在类上则不使用任何标注。 - canton7[TestClass]
这样的东西,任何公共类中有标记为[Fact]
的公共void方法都应该被发现并运行。我不确定它是否能处理嵌套类。 - Christopher Hamkins