Javascript 无法设置测试\浏览器\驱动程序环境变量Windows 10 Meteor

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

我根本无法测试我的meteor应用程序,之前在v1.4版时,我成功地启动了测试,升级到1.6版后,尽管我付出了努力,我仍然无法运行测试。我希望任何人都能帮忙

操作系统:Windows10

当前流星版本:1.6

在我的环境变量中,我设置了指向chromedriver的路径,但仍然没有成功

 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