在 Visual Studio 2015 for UWP 中加速单元测试的任何方法

Posted

技术标签:

【中文标题】在 Visual Studio 2015 for UWP 中加速单元测试的任何方法【英文标题】:Any way to speed up unit testing in Visual Studio 2015 for UWP 【发布时间】:2015-12-15 21:04:31 【问题描述】:

在 Visual Studio 2015 中测试 Windows 通用类库 (.NET 4.6) 时,“red->green->refactor”周期所需的时间相当长。我的测试项目只是标准的 MSTest“单元测试应用程序”项目。即使在全新的解决方案、全新的主题和测试项目以及基本的int Add(int n1, int n2) 方法等最简单的场景中,也需要大约 8-15 秒。这是从单击“运行测试”到显示通过/失败的时间(在进行小的代码更改之后)。

在我的机器(Win 10 pro)上进行相同的实验,但使用基于 WPF 的解决方案产生大约 1-2 秒。

在 UWP 场景中,实际测试时间本身列为 79 ms。剩下的时间是编译和部署单元测试应用容器。

有什么方法可以显着加快 UWP 的 TDD?

【问题讨论】:

【参考方案1】:

TDD 周期需要这么长的原因是因为所有 UWP 代码都必须在 AppContainer 中运行,并且需要打包和部署速度很慢。

解决此问题的方法是将尽可能多的代码分离到不需要在 AppContainer 中运行的不同项目中,然后改为测试该项目。

解决方案是为您的应用程序逻辑使用可移植类库,而不是 UWP 类库。您将在新项目对话框中找到可移植类库:

默认设置应该可以工作:

然后,您需要将 UWP 中的引用添加到可移植库,以便您可以使用它。要测试可移植库,请使用常规的非 UWP 单元测试项目:

注意 - 要完成这项工作,您需要将单元测试项目的目标框架从 4.5.2(默认)更改为 4.6。

您从常规单元测试项目运行的任何单元测试都将尽可能快地运行,因为它不需要在 AppContainer 中运行。我对此进行了测试,内部循环速度很棒。希望对您有所帮助!

【讨论】:

以上是关于在 Visual Studio 2015 for UWP 中加速单元测试的任何方法的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2015 缩进多行 for 语句

如何在 Visual Studio 2015 for C 中禁用警告? [复制]

在 Visual Studio 2015 for UWP 中加速单元测试的任何方法

Visual Studio 2015 Express for Desktop 是不是支持 JIT 调试?

转载Visual Studio 2015 for Linux更好地支持Linux下的开发

Xamarin for Visual Studio 2015 中的配置文件错误(不匹配)