提问人:Raedwald 提问时间:4/18/2019 更新时间:10/27/2020 访问量:5882
为什么 Angular 应用程序的测试应该使用 Chrome 的 --no-sandbox 选项
Why should tests of an Angular application use the --no-sandbox option of Chrome
问:
有关测试 Angular 的信息包括一个示例配置(Karma 和 Protractor),其中它禁用了 Chrome 浏览器的沙盒:
browsers: ['Chrome'],
customLaunchers: {
ChromeHeadlessCI: {
base: 'ChromeHeadless',
flags: ['--no-sandbox']
}
},
和
const config = require('./protractor.conf').config;
config.capabilities = {
browserName: 'chrome',
chromeOptions: {
args: ['--headless', '--no-sandbox']
}
};
exports.config = config;
但为什么呢?为什么不让沙盒保持启用状态?这样做有充分的理由吗?测试是否需要正常运行?
答:
3赞
Nathaniel C
4/19/2019
#1
我不确定为什么示例代码会禁用沙盒,但就其价值而言,我们将它留在测试套件中,一切都很好。我们过去常常像示例一样指定,但将其删除作为此问题的解决方法,该问题在测试完成后会使孤立的 chrome 进程运行。--no-sandbox
2赞
snowpeak
10/27/2020
#2
这是使用容器进行测试的原因之一。
沙盒 出于安全原因,Google Chrome 无法提供 在基于容器的环境中运行时的沙盒。自 在基于容器的环境中使用 Chrome,传递 --no-sandbox 标记到 Chrome 可执行文件
评论