如何在 xunit 中 运行 稍微不同的测试版本 class

How to run a slightly different version of a test class in xunit

我正在对一个 ASP.NET 核心 API 应用程序进行集成测试,其中客户端可以在两个不同的路由中访问相同的资源(出于向后兼容性的原因)。

我有一个测试 class,大约有 40 个测试。

如何 运行 测试两次,一次使用路线 A,一次使用路线 B?像 [Theory] 但在 class 级别。

我的替代方法是用以下方法装饰每个方法:

[Theory]
[InlineData("/routeA")]
[InlineData("/routeB")]

使用 MemeberDataClassData。 看到这个 example from this article.

标记class抽象,然后添加2个从它派生的具体classes是一个常见的模式(即,或添加一个新的class派生自它;基础class 测试也将是 运行,但通常你会有一个抽象成员可以引起你寻求的方差)