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

时间:2015-09-18 16:18:13

标签: unit-testing tdd visual-studio-2015 uwp

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

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

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

有没有办法用UWP显着加速TDD?

1 个答案:

答案 0 :(得分:32)

TDD周期花费这么长时间的原因是因为所有UWP代码都必须在AppContainer中运行,这需要包装和部署很慢。

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

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

enter image description here

默认设置应该有效:

enter image description here

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

enter image description here

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

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