运行单元测试时为Dart 2启用代码覆盖

时间:2018-08-12 16:56:17

标签: unit-testing dart

我对在编写Dart应用程序时如何为单元测试启用代码覆盖感到困惑。我有许多非基于Web的测试-它们测试我的Web应用程序使用的域模型的方法。这些方法不需要在浏览器中运行即可进行单元测试。

现在,我通过为“在/ test目录中运行所有测试”创建运行配置,在Idea Intellij Community Edition IDE中运行它们。

我也可以通过这样的终端运行它们:“ pub run test”。

我已阅读以下指南:

window.location.href.split('?')[0]

但是我似乎什么也无法工作。按照上述指南,我假设我必须在终端上执行此操作:

<a>

但是我看不到我能提到的URI。文档说:“-uri指定VM发出的Observatory URI。”

好吧...我在哪里可以看到虚拟机发出的URI?

阅读指南的其他部分,我发现可以像这样在天文台中启动独立的Dart应用程序:

{{url || if(url == window.location.href.split('?')[0])}}

我尝试选择一个单元测试文件并使用该命令调用它,如下所示:

https://dart-lang.github.io/observatory/code-coverage.html

在浏览器中访问URL http://127.0.0.1:8181会产生一个空白页面,标题为“ Dart VM Observatory”。

无论如何,我可以尝试使用该URL发出代码覆盖命令:

$ collect_coverage --uri=http://... -o coverage.json --resume-isolates

这会吐出一大堆文本,但我看不到在任何地方创建的coverage.json文件。

理想情况下,它可以与IDE集成在一起,因此在运行单元测试时,我可以选择coverage作为选项。但是,即使我必须使用命令行实用程序,也要如何使用它?

如果有帮助,我可以在Mac OS X 10.13 High Sierra上运行,使用Dart 2.0.0并测试1.3.0。

2 个答案:

答案 0 :(得分:0)

解决此问题:https://github.com/dart-lang/test/issues/36

我们希望可以简化这一过程。今天有可能,但是它与我们的测试包并不一致。

答案 1 :(得分:0)

您也可以尝试此软件包:

https://pub.dartlang.org/packages/test_coverage

我没有经验,但是值得一试!