InternJs,如何在命令行上设置基本路径?

时间:2015-07-29 21:35:57

标签: javascript node.js selenium intern

详细信息:

我有这样的目录结构。

 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作为参数   命令行。

这让我相信我可能只是语法错误。

1 个答案:

答案 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']);