Luc*_* as 5 c# asp.net entity-framework xunit
我已经创建了一个 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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我启动我的 testClass 时,我确实在测试资源管理器中显示了测试,但 VS 告诉我测试没有执行,我不知道为什么,因为它没有显示任何错误或任何消息来解释为什么它没有执行
Bas*_*nce 13
我有一个不同的问题,但症状几乎完全相同。就我而言,我只是缺少xunit.runner.visualstudio在一些 nuget 故障排除过程中删除的 nuget 包。
通过 Visual Studio 中的 nuget GUI 安装后,它立即再次运行。
[TestClass]and [TestMethod],但 xUnit 仅在方法上使用[Fact]/ [Theory],并且不在测试class类型上使用任何属性。[TestClass]属性并将所有[TestMethod]属性更改为[Fact].我看到你有这个:
using Assert = Microsoft.VisualStudio.TestTools.UnitTesting.Assert;
Run Code Online (Sandbox Code Playgroud)
...所以我假设您将现有的 MSTest 代码移植到 xUnit,在这种情况下,您可以将 MSTest 的属性别名为 xUnit,而不是更改代码库中的属性:
using TestClassAttribute = SomeDummyAttribute;
using TestMethodAttribute = Xunit.FactAttribute;
internal sealed class SomeDummyAttribute : Attribute {}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 C# 10.0 或更高版本,则可以使用global using它将由同一项目中的所有源文件共享的版本。
另外,请考虑使用Shouldly或Fluent Assertions而不是Assert/Asserts类。
xunit.runner.visualstudioNuGet 包取决于您的 Visual Studio和.NET 版本。该xunit.runner.visualstudio包对您正在使用的 Visual Studio 和 .NET 的特定版本相当挑剔 - 不幸的是,NuGet 和 Visual Studio 都没有显示任何更新xunit.runner.visualstudio到不再支持您的环境的版本的消息(在我的例子中,我的目标是 . NET Core 3.1 但更新到xunit.runner.visualstudio2.5.0(需要 .NET 6.0+),这样做会使 VS 的测试资源管理器只是默默地失败,而不是列出测试用例)。
我编译了下表:确保支持 Visual Studio和目标 .NET 平台/版本的组合:
| xunit.runner.visualstudio | 发布日期 | x单位 | 视觉工作室 | .NET FX | .NET(.NET 核心) | UWP | 笔记 |
|---|---|---|---|---|---|---|---|
| 2.5.1至2.5.7 | 2023-07-06 | 1.9.2+ | VS2022 (v17.0+) | 4.6.2+ | 6.0+ | ||
| 2.5.0 | 2023-07-06 | 1.9.2+, 2.0+ | VS2019(v16.10+) | 4.6.2+ | 6.0+ | 正式支持 VS2019的最后一个版本(理论上,它应该仍然可以在 VS2019 上工作,但不要指望修复错误)。 | |
| 2.4.5 | 2022-05-05 | 1.9.2+, 2.0+ | VS2019 (v16.8+) | 4.7.2+ | 3.1+ | 10.0.16299+ | 支持 .NET Core 3.1 和 UWP 的最新版本。 |
| 2.4.2至2.4.3 | 2020-06-02 | 1.9.2+, 2.0+ | VS2017 (v15.9+) | 2.0+ | 2.1+ | 10.0.16299+ | 支持 Visual Studio 2017 和 .NET Framework 2.0 的最新版本。 |
| 2.4.0至2.4.1 | 2018-07-17 | 1.9.2+, 2.0+ | VS2012+ | 2.0+ | 1.0+ | 10.0+ | 支持 Visual Studio 2012、Visual Studio 2013 和 Visual Studio 2015 的最新版本。 |
| 2.2.0至2.3.1 | 2017-02-20 | 1.9.2+, 2.0+ | VS2012+ | 2.0+ | 1.0+ | 10.0+ | |
| 2.1.0 | 2015-09-27 | 1.9.2+, 2.0+ | VS2012+ | 2.0+ | 8.1, 10.0+ | 支持“Windows Store Apps”v8.1、Windows Phone 8.1 和可移植类库 (Profile259) 的最新版本。 |
| 归档时间: |
|
| 查看次数: |
7594 次 |
| 最近记录: |