nativescript-vue-jest
Jest Vue 转换器
npm i --save nativescript-vue-jest

nativescript-vue-jest

支持源映射和 NativeScript 的 Jest Vue 转换器。是 vue-jest 的分支。

此转换器默认为 Web 模板。要更改此设置,请将 globals.vue-jest.platform 更改为所需平台。

注意: 这是 [email protected] 的文档。 查看 [email protected] 文档

使用方法

npm install --save-dev nativescript-vue-jest

设置

要将 nativescript-vue-jest 定义为 .vue 文件的转换器,将其映射到 nativescript-vue-jest 模块

{
"jest": {
"transform": {
"^.+\\.vue$": "nativescript-vue-jest"
}
}

完整的配置如下。

{
"jest": {
"moduleFileExtensions": [
"js",
"json",
"vue"
],
"transform": {
"^.+\\.js$": "babel-jest",
"^.+\\.vue$": "nativescript-vue-jest"
}
}
}

如果您使用的是 Jest 22.4.0 之前的版本,您需要将 mapCoverage 设置为 true 以使用源映射。

示例项目

示例存储库使用 jest 和 vue-jest 测试 Vue 组件

支持的编程语言

nativescript-vue-jest 将 SFC 的脚本和模板编译成 Jest 可以运行的 JavaScript 文件。 目前,仅支持 SCSS、SASS 和 Stylus 作为样式语言进行编译

支持的脚本语言

  • typescript (lang="ts", lang="typescript")
  • coffeescript (lang="coffee", lang="coffeescript")

全局 Jest 选项

您可以通过使用 jest.globals 来改变 nativescript-vue-jest 的行为。

提示: 需要程序化配置?请使用 Jest CLI 中的 --config 选项,并导出一个 .js 文件

babelConfig

提供以下格式的 babelConfig

  • <Boolean>
  • <Object>
  • <String>
Boolean
  • true - 启用 Babel 处理。 vue-jest 将尝试使用 find-babel-config 查找 Babel 配置。

如果没有定义 babelConfig,则这是默认行为。

  • false - 完全跳过 Babel 处理
{
"jest": {
"globals": {
"vue-jest": {
"babelConfig": false
}
}
}
}
Object

提供内联 Babel 选项

{
"jest": {
"globals": {
"vue-jest": {
"babelConfig": {
"presets": [
[
"env",
{
"useBuiltIns": "entry",
"shippedProposals": true
}
]
],
"plugins": [
"syntax-dynamic-import"
],
"env": {
"test": {
"plugins": [
"dynamic-import-node"
]
}
}
}
}
}
}
}
String

如果提供字符串,它将是一个假设的 Babel 配置文件路径(例如 .babelrc.babelrc.js)。

{
"jest": {
"globals": {
"vue-jest": {
"babelConfig": "path/to/.babelrc.js"
}
}
}
}

要使用 配置函数 API,请使用内联选项。即。

{
"jest": {
"globals": {
"vue-jest": {
"babelConfig": {
"configFile": "path/to/babel.config.js"
}
}
}
}
}

tsConfig

提供以下格式的 tsConfig

  • <Boolean>
  • <Object>
  • <String>
Boolean
  • true - 使用自定义配置处理 TypeScript 文件。 vue-jest 将尝试使用 tsconfig.loadSync 查找 TypeScript 配置。

如果没有定义 tsConfig,则这是默认行为。

Object

提供内联的 TypeScript 编译器选项

{
"jest": {
"globals": {
"vue-jest": {
"tsConfig": {
"importHelpers": true
}
}
}
}
}
String

如果提供一个字符串,则假定它是 TypeScript 配置文件的路径

{
"jest": {
"globals": {
"vue-jest": {
"tsConfig": "path/to/tsconfig.json"
}
}
}
}

支持的模板语言

  • pug (lang="pug")

    • 要为 Pug 编译器提供选项,请将它们输入到 Jest 配置中。这些选项将被传递给 pug.compile()。
      {
    "jest": {
    "globals": {
    "vue-jest": {
    "pug": {
    "basedir": "mybasedir"
    }
    }
    }
    }
    }
  • jade (lang="jade")

  • haml (lang="haml")

支持的风格语言

  • stylus (lang="stylus", lang="styl")
  • sass (lang="sass")
    • SASS 编译器支持 jest 的 moduleNameMapper,这是处理 Webpack 别名的建议方式。
  • scss (lang="scss")
    • SCSS 编译器支持 jest 的 moduleNameMapper,这是处理 Webpack 别名的建议方式。

    • 要导入全局包含的文件(例如变量、混合等),请在 Jest 配置中的 jest.globals['vue-jest'].resources.scss 包含它们

      {
      "jest": {
      "globals": {
      "vue-jest": {
      "resources": {
      "scss": [
      "./node_modules/package/_mixins.scss",
      "./src/assets/css/globals.scss"
      ]
      }
      }
      }
      }
      }

CSS 选项

experimentalCSSCompile: 布尔值 默认为 true。关闭 CSS 编译 hideStyleWarn: 布尔值 默认为 false。隐藏关于 CSS 编译的警告 resources

{
"jest": {
"globals": {
"vue-jest": {
"hideStyleWarn": true,
"experimentalCSSCompile": true
}
}
}
}