Я новичок в модульном тестировании в vue js. Я только что просмотрел этот веб-сайт, чтобы узнать о модульном тестировании "https://vue-test-utils.vuejs.org/guides/#testing-single-file-components-with-mocha-webpack". пока я отрабатываю примеры в "mocha-webpack", я получил эту ошибку
WEBPACK Failed to compile with 1 error(s)
Error in ./src/Counter.vue
TypeError: Super expression must either be null or a function
at /opt/htdocs/guru/unitTest_prct/node_modules/prettier/index.js:32893:5
at /opt/htdocs/guru/unitTest_prct/node_modules/prettier/index.js:32913:4
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] test: `mocha-webpack --webpack-config webpack.config.js --require test/setup.js test/**/*.spec.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-09-06T10_28_47_073Z-debug.log
Может ли кто-нибудь сказать мне, как решить эту ошибку. Это мой файл Counter.vue
<template>
<div>
<div>
{{ count }}
<button @click = "increment">Increment</button>
</div>
</div>
</template>
<script>
export default {
data () {
return {
count: 0
}
},
methods: {
increment () {
this.count++;
}
}
};
</script>
Вот мой файл Counter.spec.js
import { shallowMount } from '@vue/test-utils'
import Counter from '../src/docs/Counter.vue'
describe('Counter.vue', () => {
it('increments count when button is clicked', () => {
const wrapper = shallowMount(Counter)
wrapper.find('button').trigger('click')
expect(wrapper.find('div').text()).toMatch('1')
})
})
@ yuriy636 Я обновил свой файл counter.vue
можно посмотреть ваш импорт, пожалуйста?
@ P3trur0 здесь я добавляю свой файл Counter.spec.js



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это проблема, связанная с версией 1.14.1prettier, которая представляет собой пакет NPM, используемый в вашем сценарии.
Действительно, глядя на их Репозиторий GitHub, проблема обнаружена. На данный момент существует возможное обходное решение: в основном это закомментировать строку 32893 prettier/index.js.
В вашей среде вы можете найти файл здесь: /opt/htdocs/guru/unitTest_prct/node_modules/.
Хороший! Конечно, имейте в виду, что это обходной путь, который не подходит в производственной среде.
но я сомневаюсь, что эта версия является моей проблемой, значит, теперь я обновил свою версию с 1.14.1 до 1.14.2, но все же я столкнулся с этой проблемой. Почему?
ошибка выглядит все еще открытой на GitHub; 1.14.1 - это версия, в которой он был представлен. Полагаю, это будет исправлено в будущем.
спасибо, была та же проблема, и вы спасли мне день. Есть идеи, как сделать это менее «хакерским» способом?
привет @themathmagician, рад, что помог. AFAIK, предлагаемый здесь - это текущий обходной путь для решения проблемы. В качестве альтернативы вы можете оценить возможность понижения версии этой зависимости NPM.
Я использую sed -i.bak '32893s/^..////' node_modules/prettier/index.js, чтобы закомментировать эту строку, когда мы делаем новую настройку, но был бы признателен за руководство, как понизить версию оскорбительной версии prettify? вы хотите понизить версию тестовых утилит vue?
@themathmagician да, я так и имел в виду. Вы должны проверить, какая версия vue-test-utils зависит от модуля NPM, используя prettifier версии 1.14.1, и соответственно заменить ее. Однако, IMHO, поскольку эта ошибка должна быть исправлена в будущих версиях, я бы какое-то время использовал обходной путь, прежде чем рассматривать возможность понижения версии.
Вы можете опубликовать свой файл Counter.vue?