2014-09-25 36 views
0

我正在使用XUnit和TestDriven.Net或Resharper測試運行器來執行我的測試。我真的很喜歡寫我的測試的BDD風格,所以我想知道是否有一些我們可以修改這些框架的輸出?我們是否可以定製XUnit和TestDriven.Net的輸出

我喜歡用下劃線命名我的測試,並且想要分割測試名稱並將其格式設置爲Given,When,Then格式。這些工具有可能嗎?

+0

快看@ http://www.specflow.org/我個人已經愛上它了。這是一個BDD測試框架,它位於(例如)XUnit之上,並提供您需要的東西。 – decPL 2014-09-25 09:23:00

+0

decPL我知道Specflow,我個人很喜歡MSpec另一個BDD frameword。然而,很多人認爲BDD只能通過特定的工具集來完成,儘管如果你看到特定標準格式的信息,它確實可以幫助你學習這些概念。這就是爲什麼我想知道我們是否可以在不改變框架的情況下利用BDD? :) – 2014-09-25 09:26:16

+0

從來沒有建議它是唯一的工具;嘗試過兩種,愛上了SpecFlow,但顯然YMMV – decPL 2014-09-25 09:32:28

回答

0

我不確定你想要做什麼。您似乎想要更改某個測試運行器上顯示的測試名稱。顯示測試名稱實際上僅取決於測試運行器(工具)。這意味着我們可以自定義名稱或不能使用我們使用的測試運行器。

檢出了以下代碼,它可能是您想要執行的代碼。如果代碼不是這種情況,至少我認爲它可以向您展示如何定製測試名稱的一些想法。

public class Given_Foo 
{ 
    [Test] 
    public void Then_Bar_returns_correct_result() 
    { 
     Assert.True(flase, "Check out test names..."); 
    } 
} 

public class TestAttribute : FactAttribute 
{ 
    public TestAttribute() 
    { 
    } 

    protected override IEnumerable<ITestCommand> EnumerateTestCommands(IMethodInfo method) 
    { 
     yield return new CustomNamedTestCommand(method); 
    } 
} 

public class CustomNamedTestCommand : FactCommand 
{ 

    public CustomNamedTestCommand(IMethodInfo method) : base(method) 
    { 
     this.DisplayName = DisplayName.Replace("_", " "); 
    } 
} 
+0

甜蜜的回答!謝謝Mate,當然可以給我一個我想實現的鉤子,現在我可以定製我的測試結果的輸出。 – 2014-09-26 02:18:03

相關問題