Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gruntjs 如何在Grunt中运行多个业力目标?_Gruntjs_Karma Runner_Karma Jasmine - Fatal编程技术网

Gruntjs 如何在Grunt中运行多个业力目标?

Gruntjs 如何在Grunt中运行多个业力目标?,gruntjs,karma-runner,karma-jasmine,Gruntjs,Karma Runner,Karma Jasmine,我们使用Grunt在一个构建中构建多个但类似的应用程序。 这是一个相当复杂的大型项目,每个应用程序都有一个文件夹,还有一个名为share的文件夹,其中包含许多共享组件 多个业力目标 Angular按名称(字符串)注入依赖项,我们的应用程序具有与HomeController和MenuController同名的文件。这迫使我们拆分每个应用程序的karma目标,因此依赖项仅从正在测试的共享和特定应用程序加载 致命错误 当使用咕噜来运行业力目标时,它只成功运行第一个,而无法运行第二个致命错误:侦听EAD

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

多个业力目标
Angular按名称(字符串)注入依赖项,我们的应用程序具有与HomeController和MenuController同名的文件。这迫使我们拆分每个应用程序的karma目标,因此依赖项仅从正在测试的共享和特定应用程序加载

致命错误
当使用咕噜来运行业力目标时,它只成功运行第一个,而无法运行第二个<代码>致命错误:侦听EADDRINUSE该错误与正在使用的端口有关

业力配置(简化)

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
  });
};
咕哝业力配置

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'
      ]),      
    }
  }
};
如何在同一个咕噜任务中同时运行两个因果报应目标(A和B)? 我的猜测是,我要么重置karma服务器(phantomJs?),要么在同一个目标上作为单独的“集合”运行它们,但我不知道如何做

希望外面的任何人都能帮忙!谢谢

更新1

这似乎解决了同样的问题,但尚未发布

也许您可以将您的
端口
选项移动到目标中,然后为每个端口选择不同的端口

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

有效的变通方法
从分发任务中删除
karma
任务。 与在一个grunt任务中运行多个karma目标不同,您可以在命令行中分别执行多个grunt命令(主要在持续集成服务器上。对于开发,很少需要运行所有目标)

命令可以是:(可选xxxxxx是测试完成后要运行的任何任务)

grunt testA && grunt testB && grunt xxxxxx