详细信息:
我有这样的目录结构。
myapp
root-one
-web
-app
-tests
root-two
-grunt
node_modules
.bin
intern-runner
selenium-standalone
intern
selenium-standalone
grunt-shell
Gruntfile.js
从我的grunt文件中我使用shell npm来启动selenium独立服务器,就像这样..
shell: {
intern : {
options: { stdout: true},
command: [
"cd node_modules/.bin",
"start selenium-standalone start",
"intern-runner config=tests/intern basePath=../../../../root-one/web"
].join('&&')
}
}
}
grunt.registerTask('intern', ['shell:intern']);
运行我的grunt命令 grunt intern 后,selenium启动但是我从intern-runner收到以下错误。
Error: Failed to load module tests/intern
from C:/myapp/root-two/grunt/node_modules/.bin/tests/intern.js
现在因为我使用basePath=../../../../root-one/web
设置路径(或者我认为)。我原以为它会尝试从C:/myapp/root-one/web/tests/intern.js
执行而不是保留在.bin
目录中。
问题:
所以真正的问题是。在命令行上为intern-runner设置basePath的正确方法是什么?因为这似乎不起作用。根据{{3}} ......
您还可以指定任何有效的docs作为参数 命令行。
这让我相信我可能只是语法错误。
答案 0 :(得分:0)
这听起来并不像我期望的那样。如下所述:https://github.com/theintern/intern/issues/449
所以现在的解决方法是在全球范围内安装实习生而不是尝试在我的项目中本地运行。所以相反,我做了..
npm install intern -g
我的项目结构如此......
myapp
root-one
-web
-app
-tests
root-two
-grunt
node_modules
.bin
selenium-standalone
selenium-standalone
grunt-shell
Gruntfile.js
基本上只是删除了实习生,因为它现在全局安装。它位于以下窗口..
C:\Users\user\AppData\Roaming\npm\node_modules\intern
我的Gruntfile也改变了以下内容。启动selenium后,我将目录更改回适当的位置以运行intern-runner
命令。
shell: {
intern : {
options: { stdout: true},
command: [
"cd node_modules/.bin",
"start selenium-standalone start",
"cd ../../../../root-one/web",
"intern-runner config=tests/intern
].join('&&')
}
}
}
grunt.registerTask('intern', ['shell:intern']);