簡體   English   中英

單元測試和集成測試的分離

[英]Separation of unit tests and integration tests

我有興趣創建完整的模擬單元測試,以及檢查某些異步操作是否正確返回的集成測試。 我想要一個用於unit測試的命令和一個用於integration測試的命令,這樣我就可以在我的 CI 工具中單獨運行它們。 做到這一點的最佳方法是什么? 像 mocha 和 jest 這樣的工具似乎只專注於一種做事方式。

我看到的唯一選擇是使用 mocha 並在一個目錄中有兩個文件夾。

類似的東西:

  • __unit__
  • __integration__

然后我需要某種方式告訴 mocha 運行src目錄中的所有__unit__測試,另一種方式告訴它運行所有__integration__測試。

想法?

Mocha 支持目錄、文件通配和測試名稱grepping ,可用於創建測試“組”。

目錄

test/unit/whatever_spec.js
test/int/whatever_spec.js

然后對目錄中的所有js文件運行測試

mocha test/unit
mocha test/int
mocha test/unit test/int

文件前綴

test/unit_whatever_spec.js
test/int_whatever_spec.js

然后針對特定文件運行 mocha

mocha test/unit_*_spec.js
mocha test/int_*_spec.js
mocha

測試名稱

在 mocha 中創建描述測試類型和類/主題的外部塊。

describe('Unit::Whatever', function(){})

describe('Integration::Whatever', function(){})

然后使用 mochas "grep" 參數運行命名塊--grep / -g

mocha -g ^Unit::
mocha -g ^Integration::
mocha

在使用測試名稱時保持文件或目錄分隔仍然很有用,這樣您就可以輕松區分失敗測試的源文件。

包.json

將每個測試命令存儲在您的 package.json scripts部分,以便使用諸如yarn test:intnpm run test:int類的東西很容易運行。

{
  scripts: {
    "test": "mocha test/unit test/int",
    "test:unit": "mocha test/unit",
    "test:int": "mocha test/int"
  }
}

mocha 不支持標簽或類別。 你理解正確。 必須創建兩個文件夾,unit和integration,像這樣調用mocha

摩卡單元摩卡集成

暫無
暫無

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

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