簡體   English   中英

在 e2e nestjs 中管理測試連接

[英]Manage the test connection in e2e nestjs

我正在嘗試僅為 e2e 測試創建一個數據庫,但是當我需要刪除它時,我刪除了主數據庫。

問題應該是 getConnectionToken 因為我在放置數據庫期間使用它,但它在我的 beforeEach 中獲得了主連接

const moduleRef = await Test.createTestingModule({
      imports: [
        
        MongooseModule.forRootAsync({
          useFactory: () => ({
            uri: 'mongodb://127.0.0.1:27017/test',
            name: 'testing_connection',            
          })
        }),        
        AppModule,
        AuthModule,
        UsersModule
      ]
    }).compile();

畢竟我有

afterAll(async () => {
    await (app.get(getConnectionToken()) as Connection).db.dropDatabase();
    await app.close();
  });

在測試期間,我可以在測試數據庫上寫入,但畢竟我刪除了主連接。 如果我檢查app.get(getConnectionToken()我可以看到我有兩個連接,第一個是我在app.module上創建的連接,第二個應該是測試連接。

問題是,我怎樣才能刪除正確的數據庫? 我可以在getConnectionToken中傳遞一個參數,我嘗試使用testing_connection但沒有幸運

您應該在beforeEachbeforeAll function 中添加await app.init()來初始化 Nest 應用程序。如果您使用單連接嘗試:

const connection = app.get(getConnectionToken()); "DatabaseConnection"
await connection.dropDatabase();

如果您使用多個連接,則應將getConnectionToken()替換為連接名稱(在您的情況下為testing_connection

暫無
暫無

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

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