标签: mocha-webpack

如何为mocha-webpack分隔文件

发生的事情是,当我运行我的测试时,我的覆盖范围只显示bundle.js哪些没有用.

我有以下webpack文件设置,并想知道我应该改变什么,以便每个文件都被单独覆盖

webpack.config-test.js

var nodeExternals = require("webpack-node-externals")
const path = require("path")

module.exports = {
    context: path.resolve(__dirname),
    resolve: {
        extensions: [".js"],
        alias: {
            "@": path.join(__dirname, "../../src/server"),
        }
    },
    output: {
        path: "./",
        filename: "[name].js",
    },    
    target: "node", // webpack should compile node compatible code
    externals: [nodeExternals()], // in order to ignore all modules in node_modules folder
}
Run Code Online (Sandbox Code Playgroud)

通过npm运行命令:

nyc mocha-webpack --webpack-config test/server/webpack.config-test.js --glob \"*spec.js\" test/server/unit
Run Code Online (Sandbox Code Playgroud)



目前的输出是:

All files  |    90.38 |    70.83 |    90.91 |     90.2 |                   |
 bundle.js …
Run Code Online (Sandbox Code Playgroud)

javascript mocha.js webpack mocha-webpack

12
推荐指数
1
解决办法
488
查看次数

如何修复“错误:预期在 'ProxyZone' 中运行,但未找到。” 在摩卡测试中?

我正在尝试使用mochachaiwebpack测试我的英雄之旅 Angular 应用程序。我已经关注了这篇文章并在本指南的帮助下完成了设置并修复了构建错误并启动并运行了测试。

但是,我的测试失败了,除了我不使用async()inbeforeEach钩子的测试用例。

通过测试

  beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [HttpClientTestingModule],
      providers: [HeroService, MessageService]
    });
    httpTestingController = TestBed.get(HttpTestingController);

    let mockHeroes = [...mockData];
    let mockHero = mockHeroes[0];
    // let mockId = mockHero.id;

    heroService = TestBed.get(HeroService);
  });

  afterEach(() => {
    httpTestingController.verify();
  });

  it('is created', () => {
    expect(heroService).to.exist;
  });
Run Code Online (Sandbox Code Playgroud)

未通过测试

//imports
import { async, ComponentFixture, TestBed } from '@angular/core/testing';

import { DashboardComponent } from './dashboard.component';
import { HeroSearchComponent …
Run Code Online (Sandbox Code Playgroud)

unit-testing mocha.js typescript mocha-webpack angular

12
推荐指数
2
解决办法
5952
查看次数

使用@vue/cli-plugin-unit-mocha、TypeScript 和 SFC 为 VueJS 项目生成纽约市覆盖率报告

我目前正在为使用 @vue/cli-plugin-unit-mocha 运行单元测试的 Vue 项目设置测试环境。该项目使用 TypeScript 和 .vue 单文件组件。我已经成功地设置了我的项目来运行单元测试并为 TypeScript 文件生成代码覆盖率报告,但是当我尝试为 SFC 添加测试时,我收到一个错误。

为了生成覆盖率报告,我使用 nyc + istanbul-instrumenter-loader。我认为我的配置对于常规 Typescript 文件是正确的,但是当它必须处理 .vue 文件时 istanbul-instrumenter-loader 会引发错误:

error  in ./src/pages/rapportages/components/reports-grid/reports-grid-container.vue?vue&type=script&lang=ts&
Module build failed (from ./node_modules/istanbul-instrumenter-loader/dist/cjs.js):
TypeError: Cannot read property 'fileCoverage' of undefined
Run Code Online (Sandbox Code Playgroud)

在我看来 .vue 文件没有被正确转换/转译。

这是我的 package.json:

{
 ...
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "test": "vue-cli-service test:unit src/**/__tests__/*.spec.ts --require mocha-setup.js",
    "test:ci": "yarn run test --reporter mocha-teamcity-reporter",
    "test:cover": "cross-env NODE_ENV=coverage nyc vue-cli-service test:unit src/**/__tests__/*.spec.ts --require mocha-setup.js"
  }
...
"nyc": …
Run Code Online (Sandbox Code Playgroud)

typescript istanbul mocha-webpack vuejs2 nyc

5
推荐指数
0
解决办法
2986
查看次数