在 .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 进行单元测试

使用Xunit来进行单元测试

在Eclipse中使用JUnit4进行单元测试(中级篇)

TechEmpower Web 框架性能第19轮测试结果正式发布,ASP.NET Core在主流框架中拔得头筹

在Eclipse中使用JUnit4进行单元测试(中级篇)

寻找基于 C# 或 .Net 的验收测试框架 - Aqua 或 Robot 的替代品