99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Deno 測試

2020-06-24 17:06 更新

測試

Deno 有一個內置的測試器,可以用來測試 JavaScript 或 TypeScript 代碼。

編寫測試

要定義測試,需要使用要測試的名稱和函數(shù)調用 Deno.test。 您可以使用兩種風格: // 傳遞名稱和函數(shù),緊湊的形式,但不能配置

Deno.test("hello world #1", () => {
  const x = 1 + 2;
  assertEquals(x, 3);
});


// 全面的測試定義,更長的形式,但可配置(請參見下文)
Deno.test({
  name: "hello world #2",
  fn() => {
    const x = 1 + 2;
    assertEquals(x, 3);
  }
});

Assertions

在 https://deno.land/std/testing 上有一些有用的斷言實用程序,可以簡化測試:
import {
  assertEquals,
  assertArrayContains,
} from "https://deno.land/std/testing/asserts.ts";


Deno.test("hello world", () => {
  const x = 1 + 2;
  assertEquals(x, 3);
  assertArrayContains([1, 2, 3, 4, 5, 6], [3], "Expected 3 to be in the array");
});

資源和異步操作清理器

Deno 中的某些操作在資源表(在此處了解更多)中創(chuàng)建資源。 這些資源應該在使用完后關閉。 對于每個測試定義,測試器會檢查此測試中創(chuàng)建的所有資源是否已關閉,以防止資源“泄漏”。 默認情況下,這對所有測試都是啟用的,但可以通過在測試定義中將 sanitizeResources 布爾值設置為 false 來禁用。 對于異步操作(如與文件系統(tǒng)交互)也是如此。測試器檢查您在測試中啟動的每個操作是否在測試結束之前完成。默認情況下,這對所有測試都是啟用的,但可以通過在測試定義中將 sanitizeps 布爾值設置為 false 來禁用。

Deno.test({
  name: "leaky test",
  fn() {
    Deno.open("hello.txt");
  },
  sanitizeResources: false,
  sanitizeOps: false,
});

運行測試

要運行測試,使用 deno test 命令,傳入包含測試函數(shù)的文件。您也可以忽略文件名,這樣當前目錄樹內所有符合通配符 {_,.,}test.{js,mjs,ts,jsx,tsx} 的測試都會被運行。如果您傳入了一個目錄,那么該目錄下所有匹配的文件都會被運行。

## 運行當前目錄樹內的所有測試
deno test


## 運行 util 目錄內的所有測試
deno test util/


## 只運行 my_test.ts
deno test my_test.ts
deno test 和 deno run 使用相同的權限模型,比如在測試期間有可能要求 --allow-write 來寫入文件系統(tǒng)。
使用 deno help test 命令來查看相關選項。

過濾

有許多選項可以過濾要運行的測試。

命令行過濾

使用 --filter 選項可以單獨或成組運行測試。 deno test --filter "hello world" tests/ 對于在 tests/ 目錄中的文件中找到的測試,此命令將運行所有名稱中包含字符串 "hello world" 的測試。

測試定義過濾

在測試本身中,您有兩個過濾選項。

忽略測試

有時您希望忽略基于某種條件的測試(例如您只希望在 Windows 上運行測試)。 為此,您可以使用 ignore 測試定義中的布爾值。 如果它被設置為 true,則測試將被跳過。

Deno.test({
  name: "do macOS feature",
  ignore: Deno.build.os !== "darwin",
  fn() {
    doMacOSFeature();
  },
});

啟用測試

有時您可能會在大型測試中遇到問題,只想專注于有問題的測試,忽略其他測試。 為此您可以使用 only 選項來讓測試框架只運行一部分測試。多個測試可以設置此選項。盡管測試框架將報告每個測試的成功或失敗,但當任何一個測試標記為 only 時,總體測試將始終失敗。因為這只是一種臨時措施,幾乎會禁用所有測試。

Deno.test({
  name: "Focus on this test only",
  only: true,
  fn() {
    testComplicatedStuff();
  },
});

快速失敗

如果您有一個運行時間較長的測試,并希望它在第一次失敗時停止運行,則可以在運行測試時指定 --failfast 選項。 deno test --failfast

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號