![](/img/trans.png)
[英]TypeORM and NestJS: Creating database tables at the beginning of an e2e test
[英]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
但沒有幸運
您應該在beforeEach
或beforeAll
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.