Warum wird jest „globalSetup“ für bestimmte projektbezogene Aufrufe nicht ausgeführt? [geschlossen]JavaScript

Javascript-Forum
Anonymous
 Warum wird jest „globalSetup“ für bestimmte projektbezogene Aufrufe nicht ausgeführt? [geschlossen]

Post by Anonymous »

Ich habe ein TypeScript-Monorepo, das Jest verwendet, und in der Root-Konfiguration ist ein globalSetup-Skript konfiguriert (es startet einen lokalen Datenbankprozess, den viele der Tests verwenden).
Beispiel
  • Verzeichnisstruktur

    Code: Select all

    packages
    |-package1
    | |- test1.test.ts
    |-package2
    | |- test2.test.ts
    jest.config.ts
    jest.globalSetup.ts
    
  • Code: Select all

    jest
    und ts-jest werden mit dem Paketmanager Ihrer Wahl installiert
  • Testdateien enthalten nur beliebige Noop-Tests
  • Code: Select all

    jest.config.ts

    Code: Select all

    import { Config } from "jest";
    
    const jestConfig: Config = {
    projects: [
    "/packages/package1",
    "/packages/package2"
    ],
    globalSetup: "/jest.globalSetup.ts",
    };
    
    export default jestConfig;
    
  • Code: Select all

    jest.globalSetup.ts

    Code: Select all

    export default function globalSetup() {
    console.log("🌏");
    }
    
Das Verhalten von Jest bei dieser Konfiguration verwirrt mich. Das Skript globalSetup wird unter bestimmten Umständen ausgeführt, unter anderen jedoch nicht, wenn ich es erwarten würde.
  • Code: Select all

    jest
    – ruft globalSetup auf
  • Code: Select all

    jest packages/package1
    – ruft globalSetup auf
  • Code: Select all

    jest --projects packages/package1
    – ruft globalSetup nicht auf
  • Code: Select all

    cd packages/package1 && jest
    – ruft globalSetup nicht auf
Ich habe hier eine einfache Reproduktion erstellt: https://github.com/jonscheiding/jest-global-setup-repro
Ich kann in den Dokumenten von jest nichts finden, was erklärt, warum sich diese Formulare anders verhalten. Ich sehe zwar, dass ich globalSetup pro Projekt festlegen kann, aber das ist nicht wirklich das, was ich hier tun möchte, und es macht mir den Unterschied immer noch nicht klar.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post