使用AVA和TypeScript测试Nuxtjs应用程序

使用AVA和TypeScript测试Nuxtjs应用程序,typescript,unit-testing,vue.js,nuxt.js,ava,Typescript,Unit Testing,Vue.js,Nuxt.js,Ava,我正在用TypeScript创建一个Nuxt应用程序,并想用AVA进行单元测试。但是,当我尝试运行测试时,我得到: ✖ 找不到任何要测试的文件 我已经安装了@numxt/typescript build并将其添加到我的numxt.config.js 项目结构(不包括package.json之类的内容): 这是我的ava.config.cjs: module.exports=()=>{ 返回{ 要求:['./test/ava.setup.js'], ignoredByWatcher:['!***/

我正在用TypeScript创建一个Nuxt应用程序,并想用AVA进行单元测试。但是,当我尝试运行测试时,我得到:

✖ 找不到任何要测试的文件

我已经安装了
@numxt/typescript build
并将其添加到我的
numxt.config.js

项目结构(不包括package.json之类的内容):

这是我的
ava.config.cjs

module.exports=()=>{
返回{
要求:['./test/ava.setup.js'],
ignoredByWatcher:['!***/.{js,vue}'],
巴贝尔:没错,
塔普:错,
冗长:错,
颜色:真的
}
}
这是我的
ava.setup.js

require('browser-env')()
const hooks=require('require-extension-hooks')
常量Vue=require('Vue')
Vue.config.productionTip=false
window.Date=global.Date=Date
挂钩('vue')
.plugin('vue')
.push()
钩子(['vue','js']))
.exclude(({filename})=>filename.match(/\/node\u modules\//)
.plugin('babel')
.push()
这是我的
tsconfig.json

{
  "compilerOptions": {
    "target": "es2018",
    "module": "esnext",
    "moduleResolution": "node",
    "lib": ["esnext", "esnext.asynciterable", "dom"],
    "esModuleInterop": true,
    "allowJs": true,
    "sourceMap": true,
    "strict": true,
    "noEmit": true,
    "baseUrl": ".",
    "paths": {
      "~/*": ["./*"],
      "@/*": ["./*"]
    },
    "types": ["@types/node", "@nuxt/types"]
  },
  "exclude": ["node_modules"]
}
这是我的
CardItem.spec.ts

从“ava”导入测试
从'@vue/test-utils'导入{shallowMount}
从“@/components/CardItem.vue”导入CardItem
test('呈现图形',异步t=>{
常量包装=浅量(卡迪姆)
t、 失败()
})
根据,默认情况下,Ava不查找typescript文件扩展名。看起来你也需要,所以我建议你先看一下自述

{
  "compilerOptions": {
    "target": "es2018",
    "module": "esnext",
    "moduleResolution": "node",
    "lib": ["esnext", "esnext.asynciterable", "dom"],
    "esModuleInterop": true,
    "allowJs": true,
    "sourceMap": true,
    "strict": true,
    "noEmit": true,
    "baseUrl": ".",
    "paths": {
      "~/*": ["./*"],
      "@/*": ["./*"]
    },
    "types": ["@types/node", "@nuxt/types"]
  },
  "exclude": ["node_modules"]
}