使用 TestCaseSource 时无法在 VS2019 测试资源管理器的列表中看到单个测试结果
Can't see individual test results in a list in the VS2019 Test Explorer when using TestCaseSource
我正在进行一种集成测试 - 我正在使用一些 REST API 端点测试 HTTP 200。无论如何,这对我的问题并不重要。
这是我的测试:
using NUnit.Framework;
using NUnit.Framework.Internal;
namespace EndpointTests
{
[TestFixture]
public class Tests
{
public class EndPoint
{
// just a container for URL, bearer token and so on
}
private static IEnumerable<EndPoint> EndPoints()
{
// this function returns a list of test data objects, about 150 pcs
}
[Test]
[TestCaseSource(typeof(EndpointTests.Tests), nameof(EndPoints))]
public async Task Should_Respond_Http200OK_When_Requested(EndPoint endPoint)
{
Assert.AreEqual( ... );
}
}
}
我有一个包含大约 150 个对象的 IEnumerable
列表,这些对象又包含我用来提供测试功能的数据(更准确地说:这是我的 TestCaseSource
)。我知道 Visual Studio 是 运行 所有 150 个测试正确,正如预期的那样。问题是我看不到个别结果。
我的问题
是否可以Visual Studio在测试资源管理器的列表中打印每个单独的测试结果?
像这样?
根据您的测试定义,NUnit 将创建一个名为 Should_Respond_Http200OK_When_Requested
的测试套件,其中包含 150 个测试用例。测试用例都将具有相同的名称,在您的附件中不可见,但可能类似于 Should_Respond_Http200OK_When_Requested(<EndPoint>)
.
NUnit本身150个同名测试用例没有问题。它有其他方法来识别测试。然而,TestExplorer 使用名称来区分测试。它将这种情况视为具有 150 个结果的单个测试。当您突出显示测试时,这些结果应该是可见的,但这不是一个非常方便的显示。
创建测试名称时,NUnit 使用每个参数的字符串表示形式。如果你给你的 EndPoint
class 一个 ToString()
覆盖,那么 NUnit 将使用它来显示。如果表示是唯一的,TestExplorer 会将这些识别为不同的测试。
我正在进行一种集成测试 - 我正在使用一些 REST API 端点测试 HTTP 200。无论如何,这对我的问题并不重要。
这是我的测试:
using NUnit.Framework; using NUnit.Framework.Internal; namespace EndpointTests { [TestFixture] public class Tests { public class EndPoint { // just a container for URL, bearer token and so on } private static IEnumerable<EndPoint> EndPoints() { // this function returns a list of test data objects, about 150 pcs } [Test] [TestCaseSource(typeof(EndpointTests.Tests), nameof(EndPoints))] public async Task Should_Respond_Http200OK_When_Requested(EndPoint endPoint) { Assert.AreEqual( ... ); } } }
我有一个包含大约 150 个对象的 IEnumerable
列表,这些对象又包含我用来提供测试功能的数据(更准确地说:这是我的 TestCaseSource
)。我知道 Visual Studio 是 运行 所有 150 个测试正确,正如预期的那样。问题是我看不到个别结果。
我的问题
是否可以Visual Studio在测试资源管理器的列表中打印每个单独的测试结果?像这样?
根据您的测试定义,NUnit 将创建一个名为 Should_Respond_Http200OK_When_Requested
的测试套件,其中包含 150 个测试用例。测试用例都将具有相同的名称,在您的附件中不可见,但可能类似于 Should_Respond_Http200OK_When_Requested(<EndPoint>)
.
NUnit本身150个同名测试用例没有问题。它有其他方法来识别测试。然而,TestExplorer 使用名称来区分测试。它将这种情况视为具有 150 个结果的单个测试。当您突出显示测试时,这些结果应该是可见的,但这不是一个非常方便的显示。
创建测试名称时,NUnit 使用每个参数的字符串表示形式。如果你给你的 EndPoint
class 一个 ToString()
覆盖,那么 NUnit 将使用它来显示。如果表示是唯一的,TestExplorer 会将这些识别为不同的测试。