簡體   English   中英

在觀察模式下進行任何摩卡測試之前,如何運行全局設置腳本

[英]How can I run a global setup script before any mocha test in watch mode

我想以TDD方式(--watch模式)運行摩卡測試,效果很好。 但是我有一個“ global setup.js”文件,該文件模擬了應用程序的一部分,大多數測試都使用該文件。

如果我是正常運行或第一次以監視模式運行測試,那么一切都很好,因為安裝腳本已加載。

但是,如果更改測試或源文件,則僅運行相關的測試(理論上聽起來很棒),但是由於我的全局模擬腳本未運行,因此測試失敗。

即使在帶有摩卡的觀看模式下,如何每次(每次整體測試運行一次)執行設置腳本?

這是我使用的命令:

vue-cli-service test:unit --watch
# pure mocha would be (I assume)
mocha 'tests/**/*.spec.js' --watch

我曾嘗試使用--require和--file選項,但它們也不會在文件更改時重新運行。

我正在使用通過VUE CLI創建的vue應用,這就是我的代碼的外觀

// setup.spec.js
import { config } from "@vue/test-utils";

before(() => {
  config.mocks["$t"] = () => {};
});

// some_test.spec.js
import { expect } from "chai";
import { shallowMount } from "@vue/test-utils";

import MyComp from "@/components/MyComp.vue";

describe("MyComp", () => {
  it("renders sth", () => {
    const wrapper = shallowMount(MyComp);

    expect(wrapper.find(".sth").exists()).to.be.true;
  });
});

這不是一個令人滿意的答案,因為感覺應該有更好的方法,但是您可以將設置腳本導入到各個測試文件中。

例如:

// some_test.spec.js
import 'setup.spec.js' //<-- this guy right here
import { expect } from "chai";
import { shallowMount } from "@vue/test-utils";

import MyComp from "@/components/MyComp.vue";

describe("MyComp", () => {
  it("renders sth", () => {
    const wrapper = shallowMount(MyComp);

    expect(wrapper.find(".sth").exists()).to.be.true;
  });
});

感覺次優,但是它比到處復制邏輯更好。

在運行測試之前,您是否嘗試過使用.mocharc.js文件設置摩卡配置?


    'use strict';

    module.exports = {
        package: './package.json',
        watch: true,
        timeout: 100000
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM