如何在为TestFixture级别而不是Test级别设置时获取作者属性?

问题描述 投票:0回答:2

我想为testFixture设置一个Author,并在运行时获取它以便能够在我的DB中获取它:

这是TestFixture类我为testFixture级别设置Nunit属性Author:

[TestFixture(Author = nameof(AuthorName.Eva)),MachineCategory.Filter]
public class FilterTests : WidiaTestSetup
{  

        [Test, RetryOnFailureOrException]
        public void FilterCuttingDiameter()
        { ...}
} 

要从测试级别获取测试作者,我会:

Author = TestContext.CurrentContext.Test.Properties.Get("Author").ToString()

但它不能从testFixture开始如何从TestFixture级别获取它?

提前致谢

c# unit-testing testing nunit
2个回答
0
投票

虽然它不是一个非常优雅的解决方案,但反思可能是你最好的选择。

var author = GetType().CustomAttributes.First().NamedArguments.First(x => x.MemberName.Equals("Author")).TypedValue.ToString();

我建议你在OneTimeSetup中这样做,以避免每次测试产生任何不必要的成本。


1
投票

它可以在夹具的TestContext中找到。只需将它保存在OneTimeSetUp方法中。

[OneTimeSetUp]
public void GrabTheAuthor()
{
    _fixtureAuthor = TestContext.CurrentContext.Test.Properties.Get("Author").ToString();
}
© www.soinside.com 2019 - 2024. All rights reserved.