jasmine-jquery没有在我的fixture文件中找到一个元素

时间:2017-11-29 21:12:35

标签: jasmine karma-runner karma-jasmine jasmine-jquery

我正在尝试使用jasmine-jquery进行UI测试。我使用karma作为我的测试运行器和jasmine作为我的测试框架。我想我已经成功加载了夹具,jasmine-jquery被列为我的业力配置中的测试框架。

但是我无法使用jasmine-jquery在DOM中找到元素。为什么呢?

目录结构

base
 spec
  javascripts
   fixtures
    myfixture.html
karma.conf.js
tests
 settingUpHTMLFixtures.test.js

myfixture.html

<div id="my-fixture">foo bar</div>

settingUpHTMLFixtures.test.js

jasmine.getFixtures().fixturesPath = 'base/spec/javascripts/fixtures';
loadFixtures('myfixture.html');
describe('testing out jasmine-jquery', function(){
  it('can find an element in the dom using jasmine-jquery', function(){
    expect($j('#my-fixture')).toBeInDOM();
  })
})

karma.conf.js

const webpackConfig = require('./webpack.config.js');

module.exports = function(config) {
  config.set({
    basePath: "",
    files: ["tests/**/*.test.js", 'spec/javascripts/fixtures/*.html'],
    frameworks: ['jasmine-jquery', 'jasmine', 'jasmine-matchers'],
    preprocessors: {
      "tests/**/*.test.js": ["webpack"]
    },
    webpack: webpackConfig,
    plugins : [
      'karma-chrome-launcher',
      'karma-jasmine',
      'karma-jasmine-jquery',
      'karma-jasmine-matchers',
      'karma-webpack',
      'karma-jasmine-html-reporter'
      ],
    logLevel: config.LOG_INFO,
    reporters: ['kjhtml'],
    port: 9876,
    browsers: ["Chrome"],
    //...
  });
};

目前我刚收到测试失败的消息,即 testing out jasmine-jquery can find an element in the dom using jasmine-jquery FAILED Expected jQuery({ context: HTMLNode, selector: '#my-fixture' }) to be in d o m. at UserContext.<anonymous> (tests/settingUpHTMLFixtures.test.js:78:31)"

1 个答案:

答案 0 :(得分:0)

我遇到了路径错误。我自己创建基目录是错误的。 Karma只提供基本目录中的所有内容。

我需要使用单词base的唯一一次是设置fixtures路径(如上面的settingUpHTMLFixtures.test.js代码所示)