溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vue打包 npm run build-test時(shí)不動(dòng)怎么解決

發(fā)布時(shí)間:2020-11-16 15:12:07 來源:億速云 閱讀:390 作者:Leah 欄目:開發(fā)技術(shù)

vue打包 npm run build-test時(shí)不動(dòng)怎么解決?很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

今天遇到一件很奇葩的事情

輸入npm run build-test 突然停在這不動(dòng)了 what? 不動(dòng)了?!

vue打包 npm run build-test時(shí)不動(dòng)怎么解決

后來google了一下 大家都是人才

運(yùn)行一下這句話 就動(dòng)了??!

npm config set registry http://registry.cnpmjs.org

補(bǔ)充知識:vue_test_unit_e2e常見問題npm run unit單元測試和npm run e2e集成測試問題

vue項(xiàng)目要進(jìn)行unit和e2e常見問題

localStorage is not available for opaque origins

console.error node_modules\vue\dist\vue.runtime.common.dev.js

通常根據(jù)vue init webpack myproject 生成的項(xiàng)目,選擇了unit和e2e模塊后,都會(huì)有些問題。

1.首先是unit,當(dāng)我們運(yùn)行npm run unit時(shí),會(huì)出現(xiàn)以下問題:

SecurityError: localStorage is not available for opaque origins

因?yàn)檎f是jest運(yùn)行是node環(huán)境,所以沒有l(wèi)ocalStorage。

解決辦法:

在項(xiàng)目內(nèi)test/unit/jest.conf.js文件中

加入以下3句:即可

testEnvironment: 'jsdom',
 verbose: true,
 testURL: 'http://localhost'

2.然后,如果你也使用了elementui模塊, 也會(huì)報(bào)錯(cuò)以下:

console.error node_modules\vue\dist\vue.runtime.common.dev.js:621

[Vue warn]: Unknown custom element: <el-table> - did you register the component correctly&#63; For recursive components, make sure to provide the "name" option.

因?yàn)檎f是elementui的組件沒有注冊。

解決辦法:

修改項(xiàng)目里面test/unit/setup.js文件,內(nèi)容為以下:

import Vue from 'vue'
// 將Vue暴露到全局里面
global.Vue = Vue;
console.log('--global:',global.hasOwnProperty('Vue'))
Vue.config.productionTip = false

// 使用elementui組件
import ElementUI from 'element-ui';
// npm run unit 時(shí)要下面引入樣式那句注釋掉-不知為什么導(dǎo)入會(huì)報(bào)錯(cuò)??赡芤?yàn)闇y試時(shí),不需要css樣式
// import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

項(xiàng)目demo源碼在這:https://github.com/banana618859/vue_test_unit_e2e

拷貝下來后,npm i 然后npm run unit 或 npm run e2e即可

vue打包 npm run build-test時(shí)不動(dòng)怎么解決

提醒

因?yàn)?mount處理不了用戶交互,所以我們要用到vue官方推薦的@vue/test-utils安裝一下,就可以在項(xiàng)目中使用了。

npm i @vue/test-utils -D

使用:在項(xiàng)目里 test/unit/spec/HelloWorld.spec.js文件中,

import HelloWorld from '@/components/HelloWorld.vue'
import { mount } from '@vue/test-utils'
describe('測試用helloworld組件',() => {
 it('測試點(diǎn)擊后,msg的改變',() => {
   //點(diǎn)擊一下
   let wrapper = mount(HelloWorld) // 用@vue/test-utils的mount加載組件
   wrapper.vm.newData = 1;
   wrapper.find('.btn').trigger('click') //觸發(fā)按鈕點(diǎn)擊事件
   expect( wrapper.vm.msg ).toBe('test_if')
  })
})

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI