angular - 从Electron Angular项目运行Karma时出错

标签 angular electron karma-jasmine karma-runner

我尝试了许多配置失败。当我执行karma start时,下面详述的一个引发错误。arma plugin is meant to be used from within Angular CLI and will not work correctly outside of it
在项目级别,我有这个karma.config.js
module.exports = require('./src/karma.conf.js'); 指向此配置:

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-electron'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, '../coverage'),
      reports: [ 'html', 'lcovonly' ],
      fixWebpackSourcePaths: true
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['AngularElectron'],
    singleRun: true,
    customLaunchers: {
      AngularElectron: {
        base: 'Electron',
        browserWindowOptions: {
          webPreferences: {
            nodeIntegration: true,
            allowRunningInsecureContent: true
          }
        }
      }
    },
    client: {
      useIframe: false
    }
  });
}; 

我的package.json从https://github.com/twolfson/karma-electron/issues/43可见

我应该改变什么?

谢谢你的帮助

最佳答案

我在GH上检查了这个问题,您的直接问题是您需要使用ng test,但是要使 karma Electron 与Angular/Jasmine堆栈一起工作,可能还需要了解文档中没有涵盖的另一个关键细节(我刚刚解决):

  • 如果没有自定义webpack.config.js, Electron index.js中的var fs = require('fs')将无法解析

    一种。运行npm i @angular-builders/custom-webpack -D
    b。在您的angular.json中,修改您的测试项目:
    "test": { "builder": "@angular-builders/custom-webpack:karma", "options": { ... "customWebpackConfig": { "path": "./webpack.config.js" } } }
    C。在项目根目录下添加一个webpack.config.js,其中包含以下内容:
    module.exports = { target: 'electron-renderer' };
    这将启用需求功能。
  • 关于angular - 从Electron Angular项目运行Karma时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59858346/

    相关文章:

    javascript - Karma 测试期间,"Failed to execute ' querySelector ' on ' 文档 ': ' 类 MyComponent 扩展了 HTMLElement”

    Angular2 - 单击时将类添加到项目

    Angular 2 Material 垫片尺寸

    javascript - 用另一个数组项填充数组字段

    javascript - 尝试插入数组会在 angular6 中出现错误

    webview - 如何在 Angular2 应用程序中使用 Electron 的 <webview>?

    javascript - 在主渲染器和渲染器之间加载 html 后获取消息时出现问题

    unit-testing - 编写 Karma-Jasmine 单元测试用例时出现 "Error: No provider for router"

    javascript - karma + Jasmine + JSONFixtures : Cannot read property 'ajax' of undefined

    javascript - Atom Electron - 检测开发工具就绪