有什么方法可以获取NUnit测试失败的c#对象/数据吗



我正在为一个复杂的应用程序编写单元测试,该应用程序有很多规则要通过中的NUnitPlaywright检查到一个流中。Net5.事实上,为了节省为Playwright(前端测试工具(编写测试脚本的时间,我们使用了一个名为Bogus的库来根据规则动态创建伪数据(因为测试用例有很多规则需要检查,并且向每个用例写入新数据要困难得多(。我在NUnit测试中使用了Playwright脚本,并通过使用[TestCaseSource("MethodName")]提供数据源来为不同的情况提供动态数据对象。

现在,我们面临着一个问题,即一些测试用例通过了,一些测试用例失败了,我们无法确定是哪个测试用例导致了问题,因为测试用例数据是由动态源提供的,而在该源中,数据是由Bogus库根据我们生成的规则生成的。此外,我们不能长时间查看测试,这就是为什么我们实现了流程自动化。

[Test]
[TestCaseSource("GetDataToSubmit")]
public async Task Test_SubmitAssignmentDynamicFlow(Assignment assignment)
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions
{
Headless = false, 
...
});
....
private static IEnumerable<TestCaseData> GetDataToSubmit()
{
//creating data for simple job
var simpleAssignment = new DummyAssigmentGenerator()
....
.Generate();
yield return new TestCaseData(simpleAssignment);        
....

现在,我的问题是,当我们看到测试用例的整个报告时,有什么方法可以让我们查看失败案例中对象的实际值吗?这样我们就可以知道哪些特定的价值观会导致问题,并最终解决这些问题。

两种方法。。。

  1. 假设DummyAssignmentGenerator是您自己的类,则重写其ToString()方法以显示您希望看到的内容。该字符串将成为生成的测试用例名称的一部分,例如。。。

    Test_SubmitAssignmentDynamicFlow(YOUR_STRING(

  2. 使用SetName()fluent方法为您生成的每个TestCaseData项目应用一个名称。在这种情况下,您将提供测试用例的完整显示名称,而不仅仅是括号中的部分。使用{m}(YOUR_STRING)使其看起来与第一种方法相同。

如果你能使用它,第一种方法显然是两者中比较简单的。

相关内容

  • 没有找到相关文章

最新更新