網站搜尋

配置 - 如何使用 nvim-dap 調試遠端 TypeScript Vitest 單元測試?

我的 Vite TypeScript 單元測試由遠端伺服器提供,使用以下命令在 remoteserver 網域名上運行:node --inspect-brk=0.0.0.0 ./node_modules/vitest/vitest.mjs run --threads false src/backend/api.spec.ts

當我使用以下配置附加 nvim-dap 時,它會出現以下錯誤訊息:

忽略斷點,因為未找到生成的代碼(可能是來源地圖問題?)

我的 nvim-dap 配置:

dap.adapters = { node2 = { type = 'executable', command = 'node', args = {

閱讀更多 →

typescript - 為什麼 Vitest 的覆蓋率報告會報告一個僅導出枚舉的檔案?

我們採用 100% 分支覆蓋率政策。我們不追蹤函數或程式碼行。我們發現這是在程式碼覆蓋率與生產力之間的最佳平衡。我們目前遇到的問題是 vitest 報告以下檔案有兩個分支:

export enum URL { preSignedUploadUrl = '/case-document/upload/api?fileType=', saveDocumentUploadToMongoUrl = '/case-document/upload/api?caseReference=', }

如果我加入以下測

閱讀更多 →

typescript - 在 vscode 調試時禁用 vitest 的超時

在進行測試時,我可能會運行並重新運行它100次,同時在除錯模式下逐步執行,重構並重新檢查某些內容,但 vitest 的默認超時時間僅為 5 秒,而 vitest 的擴展沒有任何選項(我能看到的)允許你設置 vitest 的 test-timeout/testTimeout 值——或者在環境變量中設置 VSCODE_INSPECTOR_OPTIONS 時忽略它。

我偏好的測試除錯方式是右鍵點擊它,然後選擇「除錯測試」,

而且我正在使用 vitest 的官方 vscode 擴充功能 - https://marketp

閱讀更多 →

typescript - Vue:無法找到模組 ~~~ 或其對應的型別宣告。在 Vitest 測試模組中

我正在使用 Vite 和 Vitest。

vite.config.ts

export default defineConfig({ plugins: [vue(), VueDevTools()], resolve: { alias: [ { find: '@', replacement: fileURLToPath(new URL('./src', import.meta.url)), }, { find: '@mocks', replacement: fileURLToPath(new URL('./mock', import.meta.url)), }, ], }, });

vitest.config.ts

expor

閱讀更多 →

reactjs - 使用 Storybook 和 Vitest,模擬一個模組會拋出異常

我有一個使用 vitest 的 Storybook 設定,我想在故事中透過 vitest 模擬一個模組,所以我在我的故事檔的頂部添加了以下內容:

// my-nice-function.stories.tsx import { vi } from "vitest"; vi.mock("../some-module", () => ({ someFunction: vi.fn(), })); // the actual stories below here...

但是當我運行這個故事時,會出現以下錯誤:

無法讀取未定義的屬性(讀取 'customEqualityTesters')

現在,堆疊追蹤顯示錯誤是在 http://localhost:6006/node_modules/.cache/storybook/ea2884736a0b9e4a130cf856017239193d1095

閱讀更多 →

reactjs - Vitest 需要 ESM 錯誤。我該如何解決這個問題

我正在運行 React+Vite。我正在嘗試為組件設置單元測試,但當我嘗試運行時,我得到了以下錯誤

錯誤:不支援從 ...\node_modules\@nivo\core\dist\nivo-core.cjs.js 使用 require() 引入 ES 模組 ...\index.js。請改為在 ... 中對 index.js 使用動態 import(),這在所有 CommonJS 模組中皆可使用。

它拋出了一個 @nivo 套件錯誤,但我在這裡並未直接使用它,它來自一個組件 UI 庫。我該如何解決這個錯誤。

嘗試了來自 StackO

閱讀更多 →

typescript - 在 vue/vitest 中使用依賴注入

  1. 我的設定
  • Vue 3 應用程式
  • Pinia 儲存庫
  • 在我的 main.ts 中:app.use(myPlugin)
  • 在 MyPlugin.ts 中:我根據某些環境條件有條件地創建並提供一個倉庫 (MyRepo) 給應用程式。這個倉庫可以與 API 互動,或者為開發和測試提供假資料。
  • 在 myStore.ts 中:
defineStore('myStor

閱讀更多 →

reactjs - 使用 Vite + Vitest 的 React 測試無法運作

當我執行 npm test(它會呼叫 vitest)時,我收到以下錯誤:

失敗 src/Applications/components/ApplicationsTable/ApplicationsTable.test.tsx [ src/Applications/components/ApplicationsTable/ApplicationsTable.test.tsx ] 錯誤:目錄匯入 '{internalNpmPackage}/build/components' 不支援解析從 {internalNpmPackage}/build/index.

閱讀更多 →

reactjs - Vitest 警告:當前的測試運行器不支援 afterEach/teardown 鉤子

問題: 我正在使用 Vite 和 TypeScript 開發一個 React 專案,並且在使用 Vitest 和 RTL(React 測試庫)運行測試時遇到了一些警告。儘管測試運行正常,但我之前遇到過不使用 cleanup() 會導致某些測試失敗的問題。警告如下:

stderr | unknown test The current test runner does not support afterEac

閱讀更多 →

typescript - Vitest expect 擴展

我正在嘗試在 Vitest 中創建一個 expect.extend,我嘗試按照文檔操作

我創建了一個 vitest.d.ts 文件,在裡面聲明了這個:

interface CustomMatchers<R = unknown> { toPassGuard(guardFunc: (record: unknown) => boolean): boolean; toPassGuardArray<T = unknown>(guardFunc: (record: T) => boolean): boolean; } declare module 'vitest' { interface Assertion<T = any> extends Cu

閱讀更多 →