【问题标题】:How to run a single xunit C# test using dotnet test command line如何使用 dotnet test 命令行运行单个 xunit C# 测试
【发布时间】:2020-11-05 08:11:50
【问题描述】:

背景:我正在尝试运行 C# 单元测试(测试使用 Xunit 框架),我的要求是运行单个单元测试,而不是整个 dll 中的所有测试

我尝试过的事情:我尝试了几个命令,但直到现在都没有运气。

  1. 我试过dotnet test "complete_path/someTestDll.dll" 结果:这开始运行 dll 中的所有测试(预期但不希望)

  2. 试过dotnet test "complete_path/someTestDll.dll" \Tests: "Namespace.ClassName.MethodToRun" 结果:包含找到的测试的 Dll,但没有测试与过滤器匹配。

  3. 试过dotnet test "complete_path/someTestDll.dll" --filter "FullyQualifiedName=Namespace.ClassName.MethodToRun" 未找到测试匹配过滤器(dll 路径再次正常)

  4. 试过dotnet test "complete_path/someTestDll.dll" --filter "DisplayName=Namespace.ClassName.MethodToRun"

不仅是这些,还有完整路径、相对路径等各种混搭,几乎浪费了一整天。

注意: 我知道关于这个问题的答案很少,但我已经尝试了所有这些,从昨天开始,直到现在似乎没有什么对我有用,所以我不得不来这里寻求帮助。

看起来我错过了一些严重的事情,希望我能得到一些解决我问题的答案。

非常感谢!!

【问题讨论】:

  • 您可以选择在测试中添加[Fact(Skip = "Your reason to not run the test")] 跳过参数吗?如果您打算稍后运行其中一些,我想这并不理想。
  • @JonathanVanDam 感谢您的回答,但这个选项对我来说不可行,因为我在不同类的 dll 中有 4k 单元测试,在每个测试中添加它是不切实际的。我只是想要一种运行单个单元测试的方法,并为本地测试提供其名称。谢谢!
  • 嗯,我唯一能想到的另一件事是使用 Visual Studio 中的播放列表来创建一组要运行的单元测试,但我不知道运行测试的方法从命令行的播放列表中。
  • 好吧,我也不确定。此外,我使用命令行的全部意图是我不想使用 Visual Studio,因为它非常慢。谢谢!
  • 我能够让FullyQualifiedName=Namespace.ClassName.MethodToRun 工作。它不起作用的唯一原因是我没有正确输入完全限定的名称,或者该方法不是测试。我想知道完全限定名称是否有问题。

标签: c# .net unit-testing command-line xunit


【解决方案1】:

我能够使用此模板通过开发人员命令提示符运行单个 xunit 测试。

dotnet test "complete_path/someTestDll.dll" --filter "Namespace.ClassName.MethodName"

您还可以运行此命令来查看可用测试的完整列表,以帮助仔细检查命令中的路径和名称是否正确。

dotnet test "complete_path/someTestDll.dll" -t

【讨论】:

  • 感谢您的回答,但我也尝试过,但无法正常工作。做 dotnet test "dllHere" -t 列出所有测试,但再次使用过滤器我没有找到任何测试。用相同的图像更新了问题。
  • 好的,这是我发现的,这个命令适用于其他测试,而不仅仅是这个测试,尽管我仍然不确定这有什么问题。需要检查。我将在这里更新调查结果。再次感谢!
【解决方案2】:
  1. 在解决方案中运行。

    dotnet test [项目文件夹名称] --filter=Namespace.ClassName.MethodName

  2. 在项目内部运行。

    cd [项目文件夹名称]

    dotnet test --filter=Namespace.ClassName.MethodName

【讨论】:

    猜你喜欢
    • 2019-05-26
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多