簡體   English   中英

如何在 NUnit 中獲取 FullName 作為 TestName

[英]How to get FullName as TestName in NUnit

我有一個包含測試方法的抽象測試類。 然后是從這個抽象類派生的一些類。 TestExplorer 識別從抽象類結構派生的類,但 testNames 僅用於抽象類。 我需要向 NUNIT 顯示測試方法的 fullName,包括類,而不僅僅是抽象名稱。

  • TestName 模式 {M}{a} 給了我: NUnitTestProject1.Tests.Test1("hello")

  • 全名將是: NUnitTestProject1.NUnitTestProject1.Tests+TestImplement.NUnitTestProject1.Tests.NUnitTestProject1.Tests.Test1("hello")

我缺少“TestImplementation1”類名。 如何告訴 NUnit 將全名顯示為 TestName(我需要“Tests+TestImplement1”信息)? 很棒的是像 runsettings 文件這樣的全局文件。 測試資源管理器視圖 我嘗試了不同的 nunit 模式,還使用<DisplayName>FullNameSep</DisplayName>

提前致謝!

簡化測試類:

public abstract class Tests
{

    public class TestImplement1 : Tests
    {
    }

    public class TestImplement2 : Tests
    {
    }

    [Test]
    [TestCase("hello", TestName = "{M}{a}")]
    public void Test1(string param1)
    {
        Assert.Pass();
    }
}

好問題!

我認為您嘗試的方法不起作用,因為 NUnit VS Adapter 沒有使用 NUnit 意義上的“測試名稱”。 我對這里的歷史不是 100% 確定,但我認為這是因為測試資源管理器的 Visual Studio 端無法處理具有相同名稱的測試。

相反,請嘗試查看 .runsettings 文件中的DefaultTestNamePattern設置。 文檔的此頁面上定義了模式的不同選項 - 我希望您想要{C}+{M}{a} - 可能需要進行一些實驗才能使其完全正確。

正如@pwasap4 所指出的那樣,這些由 NUnit 創建的作為測試全名的確切格式目前無法通過模式功能訪問。 但是,很可能有人添加此功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM