我们可以自定义XUnit和TestDriven.Net的输出

时间:2014-09-25 09:15:24

标签: c# resharper xunit testdriven.net

我正在使用XUnit和TestDriven.Net或Resharper测试运行器来执行我的测试。我非常喜欢编写测试的BDD风格,所以我想知道是否有一些我们可以修改这些框架的输出?

我喜欢用下划线命名我的测试,并希望拆分测试名称并将其格式化为Given,When,Then format。是否可以使用这些工具?

1 个答案:

答案 0 :(得分: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("_", " ");
    }
}