我一直在尝试使用karma-chrome-launcher来运行测试,但每次运行测试时都会抛出此错误:
INFO [launcher]:启动浏览器Chrome 错误[启动器]:无法启动Chrome
(APPL_NM in ('TT' , 'AA')) and (TYPE_CD in ('H')) or (APPL_NM in ('PP')) and (TYPE_CD in ('R'))
这是我的karma.conf.js代码:
INFO [launcher]: Trying to start Chrome again (1/2).
ERROR [launcher]: Cannot start Chrome
INFO [launcher]: Trying to start Chrome again (2/2).
ERROR [launcher]: Cannot start Chrome
ERROR [launcher]: Chrome failed 2 times (cannot start). Giving up.
我在这里安装模块:https://www.npmjs.com/package/karma-chrome-launcher
谢谢!
答案 0 :(得分:11)
我遇到了同样的问题并尝试了很多我发现的建议解决方案,但最终解决它的是删除node_modules文件夹并通过npm install获取所有新内容
答案 1 :(得分:3)
我的构建环境存在同样的问题。
我所做的是遵循Rafael Cichocki的建议来启用调试:
logLevel: config.LOG_DEBUG
然后尝试使用与调试输出中可见的完全相同的行启动chrome-browser。
原来,由于缺少ttf字体,Chrome浏览器崩溃了。所以跑步:
apt-get install ttf-freefont
为我解决了这个问题,业力开始启动镀铬。
答案 2 :(得分:2)
I noticed when I had this error that when I changed the spec file and saved it, it seemed to work again. I had a few errors in typescript that didn't break the tests (passing in null arguments to a virtual component instance constructor). I don't know if it was resolving the errors since they existed before when it was working, or if changing the file and saving it updated the cache.
So this could mean that clearing the cache in Chrome could also potentially resolve it. It's working now again for me so I can't check to verify.
答案 3 :(得分:1)
使用angular cli的解决方案是在karma.conf.js中设置以下属性
autoWatch: false,
singleRun: true
答案 4 :(得分:0)
我从这里得到了部分灵感:https://stackoverflow.com/a/33802985/1534823
同样使用logLevel: config.LOG_DEBUG
- 它可以帮助您获得有关导致错误的原因的详细信息
检查karma.conf中的以下设置:
captureTimeout: 60000,
browserNoActivityTimeout: 360000
browser: ["Firefox"]
如果这三个设置中的任何一个设置不正确,我们会收到您上面描述的错误。
答案 5 :(得分:0)
我能够通过删除绝对路径(src/examplePath
)并将其更改为相对路径(../../examplePath
)来解决此问题。
示例规格更改:
import { myPackage } from 'src/myPath';
(似乎是问题所在)
import { myPackage } from '../../../myPath';
(似乎可以解决)
请注意,我曾尝试删除节点模块并安装npm,但这没有用。我不确定为什么这很重要。
答案 6 :(得分:0)
以防万一,您正在公司代理后面运行它。确保在您的NO_PROXY环境变量中包含 0.0.0.0 。
否则,您的测试将首先通过防火墙(最有可能无法达到0.0.0.0)进行。因此,请确保在我的
中添加以下内容NO_PROXY=127.0.0.1,localhost,0.0.0.0
尤其是如果您在容器环境(例如,构建管道)中运行测试,则未设置环境变量可能是导致ng测试在本地计算机上正常运行但无法连接到容器中的google-chrome的常见原因。
答案 7 :(得分:0)
我也面临这个问题。我在karma.config.js文件中进行了以下三个更改。
autoWatch: false,
browsers: ['Chrome'],
singleRun: false
答案 8 :(得分:0)
browsers: ['PhantomJS']
,此处允许的浏览器为PhantomJs
,但代码正在尝试Chrome浏览器,而不是karma.conf.js中指定的浏览器。
更改karma.conf.js
文件:
browsers: ['PhantomJS','Chrome', 'ChromeHeadless']
,
chrome-用于打开新的chrome浏览器窗口。
ChromeHeadless-用于在不打开浏览器窗口的情况下运行测试
确保已安装Chrome,并将其添加到PATH
希望这会有所帮助
答案 9 :(得分:0)
在Windows中,Chrome之前已安装到%LOCALAPPDATA%/ Google / Chrome / Application。现在将其安装到%PROGRAMFILES%/ Google / Chrome / Application。如果您使用Chrome的时间很长,则您的旧版本在%LOCALAPPDATA%/ Google / Chrome / Application中。
Karma-launcher正在按LOCALAPPDATA-> PROGRAMFILES->'PROGRAMFILES(X86)'的顺序搜索Chrome位置,首先找到旧版本并尝试运行它。
只需删除%LOCALAPPDATA%/ Google / Chrome / Application文件夹
答案 10 :(得分:0)
在将macOS更新到Catalina之后,我经历了这一点。我通过将Puppeteer更新到最新版本来解决了这个问题。
答案 11 :(得分:0)
在Karma.conf.js中,将超时增加到60000
captureTimeout: 60000,
browserDisconnectTimeout: 60000,
browserDisconnectTolerance: 3,
browserNoActivityTimeout: 60000,
答案 12 :(得分:0)
什么对我有用:
npm un karma-chrome-launcher
npm i karma-chrome-launcher
npm i -g karma-cli
karma init
(并按照提示操作)