【问题标题】:How to run xUnit test DLL in Commandline without building the project如何在不构建项目的情况下在命令行中运行 xUnit 测试 DLL
【发布时间】:2017-06-16 13:07:45
【问题描述】:

我在 .NET Core 中有一个项目,并使用 xUnit 构建了测试。现在我想在部署过程中运行测试。到目前为止我做了什么:

我在命令行中使用了这个命令:

dotnet test [project address]  ... 

它正在工作,但问题是此命令获取.csproj 文件而不是dll

我安装并使用了xunit.runner.console,但它不适用于 .NET Core 项目。

我使用了dotnet xunit 命令,这个也没有帮助,而我不能给它dll 它也在使用项目文件夹。

我可以使用什么来运行我构建的测试(不想再次构建它们),我可以将我的测试dll 作为输入并为我运行测试的任何命令行工具。

【问题讨论】:

    标签: unit-testing .net-core xunit xunit.net


    【解决方案1】:

    你有几个选择:

    1。使用vstest 命令

    dotnet vstest Foo.dll
    

    dll 运行测试。支持 xUnit 测试。 Documentation.

    仅一个 dll 文件是不够的。从您的bin 文件夹运行dotnet vstest,该文件夹通常包含:

    Foo.dll
    Foo.deps.json
    Foo.runtimeconfig.json
    Foo.runtimeconfig.dev.json
    Microsoft.Extensions.Logging.Test.dll
    xunit.runner.reporters.netstandard15.dll
    xunit.runner.utility.netstandard15.dll
    xunit.runner.visualstudio.dotnetcore.testadapter.dll
    

    这个bin 输出是运行测试所必需的。

    2。在测试运行时跳过项目构建

    dotnet test --no-build
    

    【讨论】:

    • vstest 运行良好且流畅。感谢您的回答,这对您有很大帮助。
    • 我在 TFS 上使用了一个执行 vstest.console.exe 的任务(与 odtnet vstest 调用 vstest.console.exe 的方式相同)。如果我调用 vstest.console.exe mytests.dll 它不起作用,因为在包含我的测试的文件夹中没有 nunit.framework.dll。这些文件实际上在文件 .deps.json 和 .runtimeconfig.dev.json 中被引用。但是这些文件似乎被 vstest.console.exe 忽略了。如何加载这些文件?
    • 对于近年来查看此内容的人,vstest 已被 dotnet test 再次取代:“dotnet vstest 命令已被 dotnet test 取代,现在可用于运行程序集”
    猜你喜欢
    • 2010-12-09
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    相关资源
    最近更新 更多