如何在不打开浏览器的情况下在docker环境中测试角度app?

时间:2017-08-21 10:05:58

标签: angularjs testing docker phantomjs microservices

目前,我正在尝试使用ng测试在docker环境中运行角度应用程序的单元测试用例,因此它打开了一个浏览器,我不需要这样做,因此我尝试了运行测试 - 浏览器PhantomJS但它无法正常工作。

我收到此错误 22 08 2017 11:52:42.355:WARN [业力]:没有捕获的浏览器,打开http://localhost:9876/ 22 08 2017 11:52:42.370:INFO [业力]:Karma v1.7.0服务器始于http://0.0.0.0:9876/ 22 08 2017 11:52:42.370:INFO [launcher]:启动无限并发的浏览器PhantomJS 22 08 2017 11:52:42.382:INFO [launcher]:启动浏览器PhantomJS  68%建筑模块507/523模块16活动... / rxjs / observable / PromiseObs22 08 2017 11:52:53.039:WARN [业力]:没有捕获的浏览器,打开localhost:9876 / 22 08 2017 11:53:42.382:WARN [发射器]:PhantomJS在60000毫秒内没有捕获,杀死。 22 08 2017 11:53:44.383:WARN [发射器]:PhantomJS在2000毫秒内没有被杀死,发送SIGKILL。 22 08 2017 11:53:46.385:WARN [发射器]:PhantomJS在2000毫秒内没有被SIGKILL杀死,继续。

1 个答案:

答案 0 :(得分:1)

如果没有浏览器,您无法运行角度测试,因为它只是在浏览器上运行时才能运行的前端应用程序的一部分。我看到你试图在PhantomJs上运行它。 PhantomJs是一个javascript项目,旨在模拟用于角度应用程序测试的浏览器。

从您的角度来看,您想要的只是确保测试运行并且您并不真正关心浏览器的打开。这正是“无头”浏览器的意义所在。没有GUI的浏览器。 PhantomJs是无头浏览器的一个例子,它在过去很流行,因为它可以在不需要GUI的情况下运行测试。今天,Chrome还为测试跑步者提供了无头模式。

如果您已经使用PhantomJs正确设置了Karma配置文件,那么您会发现它可以正常工作。这是一个人在一个gitlab CI管道的docker环境中做你想做的事情的链接。

https://medium.com/letsboot/angular-4-and-testing-angular-cli-gitlab-ci-ng-test-phantomjs-tdd-afc20f50b928