我对在编写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。
答案 0 :(得分:0)
解决此问题:https://github.com/dart-lang/test/issues/36
我们希望可以简化这一过程。今天有可能,但是它与我们的测试包并不一致。
答案 1 :(得分:0)