Skip to content

NUnit: Test methods with parameters of generic types get version-dependent full names #418

@delatrie

Description

@delatrie

I'm submitting a ...

  • bug report
  • feature request
  • support request => Please do not submit support request here, see note at the top of this template.

What is the current behavior?

If a test method contains a parameter of a generic type (e.g., List), the test's fullName includes the generic type assembly's fully qualified name.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

Given the following code:

using NUnit.Allure.Core;
using NUnit.Framework;

[AllureNUnit]
class MyTestFixture
{
    [TestCase(null)]
    public void MyTest(List<string>? list) { }
}

The following fullName is generated:

Allure.Examples.NUnit3.FrameworkSupport:MyTestFixture.MyTest(System.Collections.Generic.List`1[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]][System.String])

What is the expected behavior?

The fullName shouldn't contain an assembly's FQ name. The expected value for the example above is:

Allure.Examples.NUnit3.FrameworkSupport:MyTestFixture.MyTest(System.Collections.Generic.List`1[System.String])

What is the motivation / use case for changing the behavior?

An assembly's fully qualified name contains parts that might change over time: the culture, the version, the public key token. If a new version of the assembly is used, a new fullName is generated for the same test. testCaseId and historyId are changed as well as they are calculated based on the value of fullName. As the result, the history breaks, and a new test case is generated.

Please tell us about your environment:

  • Allure version: 2.23.1
  • Test framework: NUnit@3.13.3
  • Allure adaptor: Allure.NUnit@2.10.0

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions