前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试

用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试

作者头像
walterlv
发布2020-03-19 11:13:26
2K0
发布2020-03-19 11:13:26
举报

本文介绍使用 dotnet test 命令进行单元测试的时候,过滤出被测项目中的一部分测试出来,仅测试这一部分。


背景

建一个 .NET Core 的单元测试项目,例如项目名字是 Walterlv.Demo.Tests。举例其中的一个测试类如下:

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Walterlv.Demo.Tests
{
    [TestClass]
    public class FooTest
    {
        [TestCategory("CategoryA")]
        [Priority(1)]
        [TestMethod]
        public void TestMethod1()
        {
        }

        [Priority(2)]
        [TestMethod]
        public void TestMethod2()
        {
        }
    }
}

使用 Visual Studio 的话,直接在测试资源管理器中点击运行全部测试,或者选择想要测试的项点运行所选测试即可。

Visual Studio 测试资源管理器
Visual Studio 测试资源管理器

而使用 GUI 工具的话不利于 CI 集成和自动化测试,所以必然需要用到命令:

> dotnet test .\Walterlv.Demo.Tests.dll

有时为了调试方便或输出分类数据等,要求执行一部分单元测试,这就需要过滤了。dotnet test 的过滤使用 --filter 选项。

过滤

方法名

查找方法名包含某字符串的单元测试并执行:

dotnet test --filter TestMethod1

或者:

dotnet test --filter Name~TestMethod1

如果是排除某方法,则是:

dotnet test --filter FullyQualifiedName!=Walterlv.Demo.Tests.FooTest.TestMethod1

类名

查找类名等于某字符串的单元测试并执行:

dotnet test --filter ClassName=Walterlv.Demo.Tests.FooTest

类名必须包含命名空间,否则找不到。

分类与优先级

查找标记了 [TestCategory("CategoryA")] 的方法并执行单元测试:

dotnet test --filter TestCategory=CategoryA

查找标记了 [Priority(2)] 的方法并执行单元测试:

dotnet test --filter Priority=2

条件与或

条件或(|):

dotnet test --filter Name~TestMethod1|TestCategory=CategoryA

条件与(’&’):

dotnet test --filter Name~TestMethod1&TestCategory=CategoryA

参考资料

本文会经常更新,请阅读原文: https://blog.walterlv.com/post/dotnet-test-with-filter.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议
知识共享许可协议

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 过滤
    • 方法名
      • 类名
        • 分类与优先级
          • 条件与或
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档