我用Jest测试工具测试我的Vue.js项目。 对于覆盖范围,我也希望测试顶级.js。 它通过了,但我收到了以下错误信息。
你如何测试顶级.js?
import Vue from 'vue'
import App from '@/App'
import store from '@/store'
import router from '@/router'
/* eslint-disable no-new */
new Vue({
el: '#app',
store,
router,
components: { App },
template: '<App/>',
})
import main from '@/main'
describe('main.js', () => {
beforeEach(() => {
jest.spyOn(console, 'log')
jest.spyOn(console, 'error')
})
afterEach(() => {
console.log.mockRestore()
console.error.mockRestore()
})
it('init', () => {
expect(console.log).not.toHaveBeenCalled()
expect(console.error).not.toHaveBeenCalled()
})
})
df = pd.DataFrame([])
for x in range(10000):
save = {}
terms_1 = data['text_tokenized'].iloc[x]
save['code'] = data['code'].iloc[x]
for y in range(3000):
terms_2 = data2['terms'].iloc[y]
similar_n = len(list(terms_2.intersection(terms_1)))
save[data2['code'].iloc[y]] = similar_n
df = df.append(pd.DataFrame([save]))
答案 0 :(得分:1)
尝试执行以下操作。应该工作。
在 jest.conf.js 文件中添加设置文件。
guess_type
创建 setup.js 并创建div。
setupFiles: ['<rootDir>/test/unit/setup']
运行测试
希望有所帮助
答案 1 :(得分:0)
只需补充@ kimy82答案,错误消息即可:
You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.
发生此错误是因为用于测试的内部版本是运行时内部版本。 运行时内部版本中没有模板编译器。
解决问题的最佳方法是使用render
函数而不是template
属性。
new Vue({
el: '#app',
store,
router,
components: { App },
render: h => h(App)
})
您可以在vue的package.json中看到,主要脚本是 vue.runtime.common.js
对于分发包大小问题,运行时版本没有模板编译器。
A :如果您使用的是SFC,.vue文件,则使用Webpack捆绑您的应用程序,然后运行vue-loader
正确编译.vue文件,并且此加载程序会编译模板转换为渲染函数,因此在运行时不需要模板编译器。
从vue中查看其他版本:https://unpkg.com/vue@2.6.10/dist/