【问题标题】:how can i test angular app in docker environment without opening the browser?如何在不打开浏览器的情况下在 docker 环境中测试 Angular 应用程序?
【发布时间】:2018-01-29 08:49:57
【问题描述】:

目前,我正在尝试使用 ng test 在 docker 环境中运行 Angular 应用程序的单元测试用例,因此它会打开一个浏览器我不需要在 prod 中发生这种情况,所以我尝试了 RUN ng test --browser PhantomJS 但它不工作。

我收到此错误 22 08 2017 11:52:42.355:WARN [业力]:没有捕获的浏览器,打开 http://localhost:9876/ 22 08 2017 11:52:42.370:INFO [karma]: Karma v1.7.0 服务器开始于http://0.0.0.0:9876/ 22 08 2017 11:52:42.370:INFO [launcher]: 以无限并发启动浏览器 PhantomJS 2017 年 8 月 22 日 11:52:42.382:INFO [启动器]:启动浏览器 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 毫秒内未捕获,正在杀死。 2017 年 8 月 22 日 11:53:44.383:WARN [启动器]:PhantomJS 在 2000 毫秒内没有被杀死,发送 SIGKILL。 22 08 2017 11:53:46.385:WARN [launcher]: PhantomJS 在 2000 毫秒内没有被 SIGKILL 杀死,继续。

【问题讨论】:

  • 你从来没有提到错误是什么?显示你的执行日志

标签: angularjs testing docker phantomjs microservices


【解决方案1】:

你不能在没有浏览器的情况下运行你的角度测试,因为它是前端应用程序的一部分,只有在浏览器上运行时才能工作。我看到您正在尝试在 PhantomJs 上运行它。 PhantomJs 是一个 javascript 项目,旨在模拟浏览器以进行 Angular 应用程序测试。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    相关资源
    最近更新 更多