jpe*_*zov 16 javascript dojo unit-testing amd intern
这个问题的答案并没有回答我的问题.
我想使用Intern作为我的测试框架从项目根目录外部加载依赖项.我目前正在使用以下目录结构:
www/
project1/
app/
lib/
project2/
app/
lib/
intern-tests/
node_modules/
tests/
functional/
project1-tests/
project2-tests/
unit/
project1-tests/
project2-tests/
intern.js
Gruntfile.js
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在制作intern-tests
自己的项目,并希望此目录能够保存我所有项目的所有测试.我已经设置了我的Gruntfile来执行使用grunt exec库将命令转换为的测试.一切正常,但我的单元测试无法加载和目录中的依赖项.grunt projectName
grunt test --project=projectName
project1/
project2/
例如,这是我的单元测试之一:
define([
'intern!object',
'intern/chai!assert',
'jquery',
'../../../../project2/lib/js/var/document',
'../../../../project2/lib/js/exports/file/functions/resizeInput'
], function(registerSuite, assert, $, document, resizeInput) {
registerSuite({
name: 'functions',
resizeInput: function() {
var $input = $(document.createElement('input'));
resizeInput($input, 8, 20, 450, 200);
assert.equal($input.width(), 450);
}
});
});
Run Code Online (Sandbox Code Playgroud)
并运行该测试给我以下错误:
SUITE ERROR
Error: Failed to load module ../project2/lib/js/var/document from
project2/lib/js/var/document.js (parent: tests/unit/project2/functions)
at HTMLScriptElement.handler <__intern\node_modules\dojo\loader.js:517:27>
Run Code Online (Sandbox Code Playgroud)
如何从其他项目中包含这些外部文件?
好吧,在有人提出更好的解决方案之前,我将在intern-tests/
项目文件夹中创建符号链接。
要在 Windows 上执行此操作,如下所示:
mklink /j "c:\www\intern-tests\project-symlinks\project2" c:\www\project2
Run Code Online (Sandbox Code Playgroud)
它具有约定mklink /j "path\to\symlink" path\to\original
(/j 表示连接)
在 Mac/Linux 上,您将执行以下操作:
ln -s /www/project2 /www/intern-tests/project-symlinks/project2
Run Code Online (Sandbox Code Playgroud)
它具有约定ln -s /path/to/original /path/to/symlink
(-s 表示符号)
这看起来像下面这样:
www/
project1/
app/
lib/
project2/
app/
lib/
intern-tests/
project-symlinks/
project1/
project2/
node_modules/
tests/
functional/
project1-tests/
project2-tests/
unit/
project1-tests/
project2-tests/
intern.js
Gruntfile.js
Run Code Online (Sandbox Code Playgroud)
并将我的测试更改为以下内容:
define([
'intern!object',
'intern/chai!assert',
'jquery',
'../../../project-symlinks/project2/lib/js/var/document',
'../../../project-symlinks/project2/lib/js/exports/file/functions/resizeInput'
], function(registerSuite, assert, $, document, resizeInput) {
registerSuite({
name: 'functions',
resizeInput: function() {
var $input = $(document.createElement('input'));
resizeInput($input, 8, 20, 450, 200);
assert.equal($input.width(), 450);
}
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
541 次 |
最近记录: |