我正在尝试使用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)"
答案 0 :(得分:0)
我遇到了路径错误。我自己创建基目录是错误的。 Karma只提供基本目录中的所有内容。
我需要使用单词base的唯一一次是设置fixtures路径(如上面的settingUpHTMLFixtures.test.js代码所示)