Javascript 无法设置测试\浏览器\驱动程序环境变量Windows 10 Meteor
我根本无法测试我的meteor应用程序,之前在v1.4版时,我成功地启动了测试,升级到1.6版后,尽管我付出了努力,我仍然无法运行测试。我希望任何人都能帮忙 操作系统:Windows10 当前流星版本:1.6 在我的环境变量中,我设置了指向chromedriver的路径,但仍然没有成功Javascript 无法设置测试\浏览器\驱动程序环境变量Windows 10 Meteor,javascript,testing,meteor,mocha.js,Javascript,Testing,Meteor,Mocha.js,我根本无法测试我的meteor应用程序,之前在v1.4版时,我成功地启动了测试,升级到1.6版后,尽管我付出了努力,我仍然无法运行测试。我希望任何人都能帮忙 操作系统:Windows10 当前流星版本:1.6 在我的环境变量中,我设置了指向chromedriver的路径,但仍然没有成功 C:\Users\Username\Documents\Dev\Proj\infilerp>TEST_BROWSER_DRIVER=chrome meteor test --once --driver-p
C:\Users\Username\Documents\Dev\Proj\infilerp>TEST_BROWSER_DRIVER=chrome meteor test --once --driver-package meteortesting:mocha
'TEST_BROWSER_DRIVER' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\Username\Documents\Dev\Proj\infilerp>meteor test --full-app --
driver-package meteortesting:mocha --port 8080
[[[[[ Tests ]]]]]
=> Started proxy.
=> A patch (Meteor 1.6.1.3) for your current release is available!
Update this project now with 'meteor update --patch'.
=> Started MongoDB.
I20180730-17:58:52.807(8)? superadmin created
I20180730-17:58:53.166(8)?
I20180730-17:58:53.167(8)? --------------------------------
I20180730-17:58:53.167(8)? --- RUNNING APP SERVER TESTS ---
I20180730-17:58:53.168(8)? --------------------------------
I20180730-17:58:53.168(8)?
I20180730-17:58:53.168(8)?
I20180730-17:58:53.169(8)?
I20180730-17:58:53.169(8)? 0 passing (1ms)
I20180730-17:58:53.170(8)?
I20180730-17:58:53.171(8)?
I20180730-17:58:53.171(8)? --------------------------------
I20180730-17:58:53.172(8)? --- RUNNING APP CLIENT TESTS ---
I20180730-17:58:53.172(8)? --------------------------------
W20180730-17:58:53.281(8)? (STDERR) C:\Users\Username\AppData\Local\.meteor\packages\meteor-tool\1.6.1\mt-os.windows.x86_64\dev_bundle\server-lib\node_modules\fibers\future.js:280
W20180730-17:58:53.282(8)? (STDERR) throw(ex);
W20180730-17:58:53.283(8)? (STDERR) ^
W20180730-17:58:53.283(8)? (STDERR)
W20180730-17:58:53.283(8)? (STDERR) Error: Unknown driver "C:\Users\Username\Documents\Dev\Proj\infilerp\node_modules\chromedriver\lib\chromedriver\chromedriver.exe". browser-tests package requires that you set the TEST_BROWSER_DRIVER environment variable to one of the following: chrome, nightmare, phantomjs, puppeteer
W20180730-17:58:53.284(8)? (STDERR) at startBrowser (packages/meteortesting:browser-tests/server.js:39:13)
W20180730-17:58:53.284(8)? (STDERR) at clientTests (packages/meteortesting:mocha/server.js:138:3)
W20180730-17:58:53.284(8)? (STDERR) at serverTests (packages/meteortesting:mocha/server.js:168:7)
W20180730-17:58:53.285(8)? (STDERR) at mochaInstance.run.failureCount (packages/meteortesting:mocha/server.js:118:13)
W20180730-17:58:53.285(8)? (STDERR) at done
...
=> Exited with code: 1
在Windows上使用NodeJS/Meteor时,我发现使用npm脚本和cross-env或批处理脚本运行所有内容都要容易得多 对于测试示例,我将在
package.json
中设置一个脚本,如下所示:
{
"scripts": {
"start": "meteor run",
"test": "cross-env TEST_BROWSER_DRIVER=chrome meteor test --full-app --driver-package meteortesting:mocha --port 8080"
},
"devDependencies": {
"cross-env": "^5.2.0",
...etc
}
}
cross-env
的任务是跨不同的操作系统正确设置环境变量,这样您就可以使用npm-run-test在任何地方运行脚本
或者,作为批处理脚本(仅限Windows):
另外,既然meterotesting:mocha
支持puppeter
,我强烈建议将其用作浏览器驱动程序。我使用它时头疼的事少了很多:
npm install --save-dev puppeteer
及
您可能需要将meteortesting:browser tests更新到1.0.0版以启用Pupeter支持。以前它是在Windows上运行的还是在unixoid上运行的?我以前在mac上运行过,然后切换到Windows。然后您需要将环境变量设置为不同的。请参阅@Jankapunkt我设置了env变量,但仍然没有找到位置,我不确定我是否做错了:C:\Users\Username\Documents\Dev\Proj\infirerp>set TEST\u BROWSER\u DRIVER=“c:\WINDOWS\chromedriver.c:\Users\Username\Documents\Dev\Proj\inlinerp>TEST\u BROWSER\u DRIVER‘TEST\u BROWSER\u DRIVER’未被识别为内部或外部命令、可操作程序或批处理文件。
谢谢!我设法解决了测试浏览器驱动程序的问题。但现在我有了另一个:我添加了“测试”:“cross env test\u BROWSER\u DRIVER=chrome meteor test--完整应用程序--驱动程序包meteortesting:mocha--port 8080”
并运行了npm运行测试
,但我有另一个问题:类型错误:options.toCapabilities不是startChrome的函数(packages/meteortesting:browser tests/browser/chromedriver.js:46:82)在startBrowser(packages/meteortesting:browser tests/server.js:23:7)在clientTests(packages/meteortesting:mocha/server.js:138:3)
看起来像是chromedriver的meteortesting:browser测试中的一个bug。切换到Puppeter可以解决这个问题吗?我目前正在使用:meteor节点-vv8.9.4
。在我将selenium
更改为selenium之后-webdriver@3.0.0-beta-2
。错误消失了,但我仍然无法加载包含所有测试的页面在localhost:8080
上。该应用程序因code 0
而崩溃。我想知道是否可以将meteor节点更改为使用v6.1.3
,但我还没有找到这样做的方法。Puppeter
也因code 0
而崩溃,即使在降级selenium
之后,我还是将端口更改为3100,似乎已经迈出了一步此外,我没有使用meteor npm运行“chrome测试”
,而是简单地运行meteor测试——驱动程序包meteor测试:mocha——端口3100
,我的控制台输出测试结果。但是当我转到本地主机:3100
,我在控制台中得到了这个结果:模块。js?hash=B0C78242E1BEA83C5F38529A072C3214BF0C64:32074未捕获类型错误:无法读取当前运行的Meteor 1.7.0.3
(使用节点8.11.3
)中未定义的修补程序(modules.js?hash=b0c78242e1bea8373c5f38529a072c3214bf0c64:32074)的属性“prototype”,并使用puppeteer@1.5.0
因此无铬或硒。检测:mocha@1.0.0
,测试:浏览器-tests@1.0.0
。使用cross env TEST\u BROWSER\u DRIVER=Puppeter meteor TEST--一次--驱动程序包meteortesting:mocha--原始日志--设置设置。json启动测试
npm install --save-dev puppeteer
TEST_BROWSER_DRIVER=puppeteer