2017-08-16 115 views
2

我想使用Chrome浏览器和构建服务器上的phantomjs在本地运行我的测试。如何配置,在karma.conf.js文件茉莉花测试使用不同浏览器的角度应用程序

module.exports = function (config) { 
    config.set({ 
    basePath: '', 
    frameworks: ['jasmine', '@angular/cli'], 
    plugins: [ 
     require('karma-jasmine'), 
     require('karma-chrome-launcher'), 
     require('karma-phantomjs-launcher'), 
     require('karma-jasmine-html-reporter'), 
     require('karma-coverage-istanbul-reporter'), 
     require('karma-trx-reporter'), 
     require('@angular/cli/plugins/karma') 
    ], 
    client:{ 
     clearContext: false // leave Jasmine Spec Runner output visible in browser 
    }, 
    files: [ 
     { pattern: './<%= sourceDir %>/test.ts', watched: false }, 
    ], 
    preprocessors: { 
     './<%= sourceDir %>/test.ts': ['@angular/cli'] 
    }, 
    mime: { 
     'text/x-typescript': ['ts','tsx'] 
    }, 
    coverageIstanbulReporter: { 
     reports: [ 'html', 'lcovonly' ], 
     fixWebpackSourcePaths: true 
    }, 
    angularCli: { 
     environment: 'dev' 
    }, 
    reporters: config.angularCli && config.angularCli.codeCoverage 
     ? ['progress', 'coverage-istanbul', 'trx'] 
     : ['progress', 'kjhtml', 'trx'], 
    trxReporter: { 
     outputFile: 'test-results.trx', 
     shortTestName: false 
    }, 
    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: ['Chrome'], 
    singleRun: false 
    }); 
}; 

我的生成服务器上我使用这个配置:通过运行测试NPM,

browsers: ['PhantomJs'], 
singleRun: true 

我跑我的生成服务器上测试其启动测试。 有没有办法直接配置这个配置文件,或者我应该使用不同的karma.conf.js文件?我该如何使用它。或者我应该在ng测试中使用一些参数?

回答

0

我通过使用一些脚本在我的包的配置

"test": "ng test --single-run --browsers=PhantomJS", 
"test.watch": "ng test --browsers=Chrome", 
1

我所做的是使用2个不同的npm脚本来触发测试(基本上运行karma开始),这叫做testtest-chrome。然后在karma.conf.js我module.exports这样做过:

var ENV = process.env.npm_lifecycle_event; 
var isChrome= ENV === 'test-chrome'; 

,并在配置:

browsers: isChrome? ['Chrome'] : ['PhantomJS'] 

在你的情况,你可以在本地运行测试铬,只是测试的构建服务器。

+0

感谢您的提示找到一个很好的和简单的解决方案。现在我发现了一个很好的解决方案 – cpiock

+0

不客气。您应该将您的答案标记为已接受,因此问题已关闭。 –