在Karma测试中使用多个版本的依赖项

Using multiple versions of dependencies in Karma tests

本文关键字:版本 依赖 Karma 测试      更新时间:2023-09-26

我正在为Angular JS编写一个模块,我想确保它能在几个版本的Angular上工作。有没有一种方法可以告诉Karma运行带有几个不同依赖的测试套件(例如,首先用Angular 1.2.1进行所有测试,然后用1.2.2等等)?

我假设您使用Grunt运行您的测试,因此您可以

1)为不同的angular版本定义不同的grunt条目

karma: {
  ang11: {
    configFile: './test/karma-ang1.1.conf.js',
    autoWatch: false,
    singleRun: true
  },
  ang12: {
    configFile: './test/karma-ang1.2.conf.js',
    autoWatch: false,
    singleRun: true
  }
}

2)在每个文件中,你引用不同的角度版本和测试套装

3)你配置一个任务,按顺序运行你的karma配置文件

在另一个问题的帮助下,我使用grunt-karma的重写来重用我的karma配置文件。我的Gruntfile.js是这样的:

meta: {
  jsFiles: [
    'app/scripts/**/*.js',
    'test/spec/**/*.js'
  ]
},
karma: {
  options: {
    configFile: 'karma.conf.js',
    singleRun: true
  },
  angular13: {
    files: [{
      src: [
        'test/ref/angular-v1.3.js',
        '<%= meta.jsFiles %>'
      ]}
    ]
  },
  angular14: {
    files: [{
      src: [
        'test/ref/angular-v1.4.js',
        '<%= meta.jsFiles %>'
      ]}
    ]
  }

注意files:里面的src:。如果没有它,你会得到一个"不能使用'in'操作符…"的错误,这与Grunt处理文件的方式有关。