gpt4 book ai didi

gruntjs - 如何在 Grunt 中运行多个 karma 目标?

转载 作者:行者123 更新时间:2023-12-02 13:09:04 27 4
gpt4 key购买 nike

我们使用 Grunt 在一次构建中构建多个但相似的应用程序。这是一个相当复杂且大型的项目,每个应用程序都有一个文件夹,还有一个名为 share 的文件夹,其中包含许多共享组件。

多个 karma 目标
Angular 通过名称(字符串)注入(inject)依赖项,我们的应用程序具有相同名称的文件,例如 HomeController、MenuController。这迫使我们分割每个应用程序的 karma 目标,以便仅从正在测试的共享和特定应用程序加载依赖项。

fatal error
当使用 grunt 运行 karma 目标时,它仅成功运行第一个目标,而无法运行第二个目标。 fatal error :监听 EADDRINUSE 该错误在某种程度上与正在使用的端口有关。

Karma 配置(简化)

module.exports = function(config) {
'use strict';

config.set({
autoWatch: false,
basePath: '../',
frameworks: ['jasmine'],
exclude: [],
browsers: ['PhantomJS'],
plugins: [
'karma-html-reporter',
'karma-junit-reporter',
'karma-coverage',
'karma-phantomjs-launcher',
'karma-jasmine',
'karma-brackets'
],
singleRun: false,
colors: true,
logLevel: config.LOG_DEBUG
});
};

Grunt-karma 配置

var dep = [
'bower_components/**/*.js',
'app/shared/**/*.js',
];

module.exports = {
options: {
configFile: 'test/karma.conf.js',
reporters: ['brackets', 'html', 'junit', 'coverage'],
browsers: ['PhantomJS'],
port: 9002,
singleRun: true
},
A: {
options: {
files: dep.concat([
'app/A/src/**/*.js'
]),
}
},
B: {
options: {
files: dep.concat([
'app/B/src/**/*.js'
]),
}
}
};

如何在同一个 grunt 任务中运行两个 karma 目标(A 和 B)?我的猜测是我必须重置 karma 服务器(phantomJs?)或在同一目标上将它们作为单独的“集”运行,但我不知道该怎么做。

希望有人能帮忙!谢谢!

更新1
这个issue on github似乎解决了同样的问题,但尚未发布。

最佳答案

也许您可以将port选项移至目标中,并为每个目标选择不同的端口?

 A: {
options: {
port: 9011,
files: dep.concat([
'app/A/src/**/*.js'
]),
}
},
B: {
options: {
port: 9012,
files: dep.concat([
'app/B/src/**/*.js'
]),
}
}

关于gruntjs - 如何在 Grunt 中运行多个 karma 目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30916893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com