【问题标题】:MSTest - Ignore some tests by defaultMSTest - 默认忽略一些测试
【发布时间】:2021-09-02 09:32:21
【问题描述】:

我有一些默认情况下不想运行的测试(在 dotnet test 命令上)

只有在某些参数由环境变量或其他过滤器(如测试类别)明确设置时,才应运行这些测试。

这个项目有单元测试 (SomeTests) 以及一些具有外部依赖关系的测试 (SomeTests2)。所以我只想在设置了某些参数时才运行 SomeTests2。

解决方案中有多个单元测试项目,它们都没有定义类别。所以我只能在解决方案上做一个“dotnet测试”来运行所有的测试,当时我想忽略 SomeTests2

[TestClass] //Always Run
Class SomeTests 
{
    [TestMethod]
    public void test1(){}
}

[TestClass] //Run ONLY if some parameter is set (eg. environment var or some other param)
Class SomeTests2
{
    [TestMethod]
    public void test1(){}

    [TestMethod]
    public void test1(){}
}

我知道理想的方法是将它们拆分为多个测试项目,但有没有其他方法可以在不拆分的情况下做到这一点?

【问题讨论】:

    标签: c# .net .net-core mstest


    【解决方案1】:

    也许你可以使用这个: https://docs.microsoft.com/en-us/dotnet/core/testing/selective-unit-tests?pivots=mstest

    似乎可以用优先级和类别标记您的测试,然后从命令行使用参数运行它们。

    【讨论】:

    • 那么我必须对属于解决方案的所有其他项目中的测试进行分类
    猜你喜欢
    • 2015-01-15
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多