Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为角型项目中的测试构建或管道。量角器问题_Javascript_Angularjs_Testing_Protractor - Fatal编程技术网

Javascript 为角型项目中的测试构建或管道。量角器问题

Javascript 为角型项目中的测试构建或管道。量角器问题,javascript,angularjs,testing,protractor,Javascript,Angularjs,Testing,Protractor,我正在开发一个移动应用程序。我正在使用离子框架和angularjs。因此,我正在使用web技术编写此应用程序。我的问题是关于考试。我的应用程序中有单元和端到端(e2e)测试。 查看my package.json文件中的“我的脚本”部分: "scripts": { "test": "karma start test/karma.conf.js", "test-single-run": "karma start test/karma.conf.js --single-run" } 我能够在

我正在开发一个移动应用程序。我正在使用离子框架和angularjs。因此,我正在使用web技术编写此应用程序。我的问题是关于考试。我的应用程序中有单元和端到端(e2e)测试。 查看my package.json文件中的“我的脚本”部分:

"scripts": {
  "test": "karma start test/karma.conf.js",
  "test-single-run": "karma start test/karma.conf.js --single-run"
}
我能够在git控制台中运行执行命令的单元测试:

npm run test
我的e2e测试在两个git控制台中执行两个命令:

ionic serve (to run my app)
protractor test/protractor-conf.js (to run my e2e tests)
我这里有两个问题:

  • 为了简化量角器命令,我无法将脚本命令添加到package.json中。就像我的因果报应命令进行单元测试一样。 我试过这个:

    “e2e”:“量角器测试/量角器配置js”

为了运行“npm运行e2e”,但我收到了以下错误:

  • 第二个问题:我想为我的所有测试创建一个构建(或管道)。我的意思是,在ruby中有一个像“rake”这样的命令。我可以通过它运行我的单元和e2e测试。为了节省开发过程中的时间,避免忘记运行e2e测试,这可能非常有用
好的,现在您知道了问题所在,很容易让它工作起来。我所做的是添加一个运行
webdriver-manager-update
postinstall
脚本,这样我就永远不会忘记这样做。现在您已经将量角器作为本地依赖项,您应该能够执行以下操作:

"scripts": {
    "postinstall": "webdriver-manager update",
    "e2e" : "protractor test/protractor-conf.js"    
  },
现在,每次运行
npm install
时,
postinstall
脚本都会为您更新webdriver,您不必记得手动运行它


至于你的第二个问题,看看用吞咽或咕噜来做你要做的事情。它们都类似于rake。您可以设置一个任务,以便在每次检测到文件更改时运行测试。

您的配置中是否有seleniumServerJar的自定义位置设置?如果没有,听起来您好像忘记运行
webdriver-manager-update
。虽然当您直接运行它们时它会工作,但在使用npm脚本时它不会工作,这看起来很奇怪。我确实运行了webdriver-manager更新,这就是为什么我的e2e测试使用gragrator命令运行的原因。奇怪。我基本上和你有一样的东西,对我来说很好<代码>“e2e:运行所有测试”:“量角器量角器测试/量角器.conf.js”。假定丢失的.jar的位置是什么?我不知道它在哪里寻找您发布的错误中的selenium jar,所以我在这里猜测。我想它可能是在您的项目repo中的“node_modules\webdriver manager\selenium”下查找的,当您从命令行运行测试时,它使用的是全局安装。您完全正确,我按照Gragotor网站上的说明全局安装了Gragotor和webdriver manager。如果我想从package.json中的脚本部分使用它们,我需要使用npm在本地安装它们。如果你知道怎么做,请更正答案。我将接受它。这还不足以解决此错误:找不到模块'D:\…\node\u modules\webdriver manager\bin\webdriver manager。你能给我看看你的package.json吗。我可能忘了安装其他东西。奇怪。应该足够了。我给你发了一封电子邮件,里面有一个对我有用的
package.json