在 .net 框架中进行测试
Posted
技术标签:
【中文标题】在 .net 框架中进行测试【英文标题】:testing in .net framework 【发布时间】:2018-08-14 16:02:12 【问题描述】:我创建了一个针对 .NET Framework 4.6.1 的单元测试项目。测试显示在测试资源管理器中,并在 Visual Studio 2017 中运行良好。
我想设置一个构建过程,所以我想从命令行运行测试。我试图使用 mstest 但这没有找到测试。
当我跑步时
mstest /testcontainer:mp.tests\bin\debug\mp.tests.dll
我明白了……
Loading messageparser.tests\bin\debug\messageparser.tests.dll...
Starting execution...
No tests to execute.
但是我可以成功地使用命令“dotnet test”来运行它们。
当我跑步时
dotnet test
我明白了……
Build started, please wait...
Build completed.
Test run for C:\MP.Tests\bin\Debug\MP.Tests.dll(.NETFramework,Version=v4.6.1)
Microsoft (R) Test Execution Command Line Tool Version 15.5.0
Copyright (c) Microsoft Corporation. All rights reserved.
Starting test execution, please wait...
Total tests: 70. Passed: 70. Failed: 0. Skipped: 0.
Test Run Successful.
Test execution time: 8.2833 Seconds
但是,我发现的指导建议应将“dotnet 测试”用于 .NET Core,而没有提及 .NET Framework。
dotnet test 是否适合从 .NET Framework 项目的命令行运行测试?还是我应该使用 mstest?如果是这样,我该如何让它工作?
【问题讨论】:
“我尝试使用 mstest - 但这不起作用。”您使用的是哪种项目?.NET Core 控制台或 .NET Framework 的类库?dotnet test
用于 .NET Core仅基于 SDK 的项目(但它是否突然适用于其他项目类型尚不确定,可能不受官方支持)。
@LexLi 测试项目针对.NET Framework,我已经相应地更新了问题。
【参考方案1】:
Mstest.exe
现已弃用,Visual Studio 2017 中包含一个名为 VSTest.Console.exe
的新工具。您会在 <install root>\Microsoft Visual Studio\2017\<edition>\Common7\IDE\Extensions\TestPlatform
下发现它与 Visual Studio 一起安装。命令行选项是documented here。
为了最简单的测试执行,运行程序并提供测试项目的输出 dll 的名称。
PS E:\ .. \bin\Release>vstest.console.exe MyProject.dll
Microsoft (R) Test Execution Command Line Tool Version 15.7.2
Copyright (c) Microsoft Corporation. All rights reserved.
Starting test execution, please wait...
Passed TestMethod1
Total tests: 1. Passed: 1. Failed: 0. Skipped: 0.
Test Run Successful.
Test execution time: 2.0102 Seconds
PS E:\ .. \bin\Release>
【讨论】:
以上是关于在 .net 框架中进行测试的主要内容,如果未能解决你的问题,请参考以下文章
在 VS2010 express 中对 vb.net 进行单元测试