vue unit及e2e問題記錄

爲了快速上手vue項目,一般我們會使用腳手架vue-cli幫助我們創建項目模板。

 vue init webpack my-project  // 創建 my-project項目
 npm install   // 下載依賴包
 npm run dev   // 編譯開發環境
 npm run unit  // 啓動單元測試
 npm run e2e   // 啓動端到端測試
 npm run build // 編譯生成環境

一般dev 和build命令都可以正常執行,但是在unit和e2e環節會遇到一些比較奇怪的問題。

unit單元測試

運行單元測試時,可能出現的問題是PhantomJS(http://phantomjs.org/)下載失敗,到是單元測試運行失敗,可以多運行幾次npm install,如果還是不行,自行手動下載。

PhantomJS是一個無界面的、可腳本編程的WebKit瀏覽器引擎。它原生支持多種Web標準:Dom操作、CSS選擇器,JSON、Canvas以及SVG。

Karma 會自動加載karma-phantomjs-launcher來引導PhantomJS啓動,我們不需要改動karma.conf.js的任何配置。

e2e端到端測試

運行e2e時報如下錯誤:

F:\learn\vue\my-project>npm run e2e

> [email protected] e2e F:\learn\vue\my-project
> node test/e2e/runner.js

> Starting dev server...
> Listening at http://localhost:8080

Starting selenium server... started - PID:  7760

[Test] Test Suite
=====================

Running:  default e2e tests

Error retrieving a new session from the selenium server

Connection refused! Is selenium server started?

{ value: 
   { stacktrace: 'org.openqa.selenium.SessionNotCreatedException: Unable to create new service: ChromeDriverService\nBuild info: version: \'3.7.1\', revision: \'8a0099a\', time: \'20
17-11-06T21:07:36.161Z\'\nSystem info: host: \'PC-20160906QJYJ\', ip: \'192.168.10.162\', os.name: \'Windows 7\', os.arch: \'amd64\', os.version: \'6.1\', java.version: \'9.0.1\'\nDr
iver info: driver.version: unknown\r\n\tat org.openqa.selenium.remote.server.ServicedSession$Factory.lambda$get$0(ServicedSession.java:194)\r\n\tat org.openqa.selenium.remote.server.
ServicedSession$Factory.apply(ServicedSession.java:204)\r\n\tat org.openqa.selenium.remote.server.ActiveSessionFactory.lambda$apply$11(ActiveSessionFactory.java:167)\r\n\tat java.bas
e/java.util.stream.........
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "D:\\Program Files\\nodejs\\node.exe" "D:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "e2e"
npm ERR! node v6.10.1
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! [email protected] e2e: `node test/e2e/runner.js`
npm ERR! Exit status 1

嘗試了很多方法,後來發現是npm 下載chromedriver的時候出現了問題,手動刪除node_modules\chromedriver ,運行命令。

chromedriver是一個二進制運行庫,供Nightwatch驅動Chrome瀏覽器,加載測試。

F:\learn\vue\my-project>npm install chromedriver --chromedriver_cdnurl=https://npm.taobao.org/mirrors/chromedriver

> [email protected] install F:\learn\vue\my-project\node_modules\chromedriver
> node install.js

Downloading https://npm.taobao.org/mirrors/chromedriver/2.33/chromedriver_win32.zip
Saving to C:\Users\ADMINI~1\AppData\Local\Temp\chromedriver\chromedriver_win32.zip
Received 790K...
Received 1580K...
Received 2370K...
Received 3154K...
Received 3942K...
Received 4125K total.
Extracting zip contents
Copying to target path F:\learn\vue\my-project\node_modules\chromedriver\lib\chromedriver
Done. ChromeDriver binary available at F:\learn\vue\my-project\node_modules\chromedriver\lib\chromedriver\chromedriver.exe
[email protected] F:\learn\vue\my-project
`-- [email protected]

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

chromedriver 下載成功:)

重新運行npm run e2e,端到端測試已經可以成功運行。

F:\learn\vue\my-project>npm run e2e

> my-project@1.0.0 e2e F:\learn\vue\my-project
> node test/e2e/runner.js

> Starting dev server...
> Listening at http://localhost:8080

Starting selenium server... started - PID:  5300

[Test] Test Suite
=====================

Running:  default e2e tests
 √ Element <#app> was visible after 53 milliseconds.
 √ Testing if element <.hello> is present.
 √ Testing if element <h1> contains text: "Welcome to Your Vue.js App".
 √ Testing if element <img> has count: 1

OK. 4 assertions passed. (3.284s)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章