asp.net 如何实现单元测试的自定义[Ignore]属性?(跳过RELEASE配置中的某些测试)

0lvr5msh  于 5个月前  发布在  .NET
关注(0)|答案(1)|浏览(77)

我使用的是MSTEST。我希望用[TestWithCheats]属性标记测试方法。如果这些测试在RELEASE配置中运行,应该跳过而不会失败。但是,它们必须在DEBUG配置中执行。
我尝试在测试方法中使用 * Assert.Inconclusive *,但它总是抛出异常。

public static class TestHelpers
{
    public static void SkipIfCheatsNotAllowed()
    {
        #if !ALLOW_CHEATS
        Assert.Inconclusive("Skipping cheat tests in Release mode.");
        #endif
    }
}

TestHelpers.SkipIfCheatsNotAllowed();

字符串
所以主要的问题是这些测试在Jenkins身上失败了。

Failed TriggerFreeSpinsRejectCashout [2 ms]

Error Message: Assert.Inconclusive failed. 

Skipping cheat test in Release configuration.

3htmauhk

3htmauhk1#

以下是我在这些情况下通常采取的方法:
1.用一个类别装饰测试

[TestCategory("SkipInOfficialBuild")]
public static void SkipIfCheatsNotAllowed() 
{
...
}

字符串
1.配置你的构建管道不运行此类别的测试。我没有使用Maven的经验,但如果它使用dotnet test,它应该看起来像这样:

dotnet test --filter TestCategory!=SkipInOfficialBuild

相关问题