我正在使用grunt,mocha和chai来运行基本的单元测试。我的单元测试如下所示
describe('SPSearchConnection', function () {
describe('#performSearch()', function () {
it('should return zero or more results', function () {
var spSearchConnect = require('../index');
alert(spSearchConnect);
chai.assert.equal(-1, [1, 2, 3].indexOf(5));
});
});
});
现在,当我使用grunt" grunt"进行测试时我收到以下错误:
ReferenceError: Can't find variable: require
我的gruntfile.js看起来像这样:
// Gruntfile.js
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
// Mocha
mocha: {
all: {
src: ['tests/testrunner.html'],
},
options: {
run: true
}
}
});
// Load grunt mocha task
grunt.loadNpmTasks('grunt-mocha');
grunt.registerTask('default', ['mocha']);
};
我的testrunner.html文件如下所示:
<html>
<head>
<meta charset="utf-8">
<title>Mocha Tests</title>
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="../node_modules/mocha/mocha.js"></script>
<script src="../node_modules/chai/chai.js"></script>
<script>
mocha.setup('bdd')
mocha.reporter('html');
</script>
<!-- Tests -->
<script src="tests.js"></script>
<!-- Tests -->
<script></script>
<script>
// Only tests run in real browser, injected script run if options.run == true
if (navigator.userAgent.indexOf('PhantomJS') < 0) {
mocha.run();
}
</script>
</body>
</html>
有人可以告诉我如何解决这个问题吗?
答案 0 :(得分:0)
您的单元测试有require('../index')
行,但问题是您的测试将在浏览器环境中运行,该环境没有本机require
函数(因此{{1} })。如果您需要包含单独的文件,可以使用"requirejs"库( 用于浏览器)。或者您可以在HTML文件中使用ReferenceError
标记?或者只是一个简单的Ajax调用......