簡體   English   中英

為什么我的JUnit測試用例在作為Test Suite和單個Junit文件運行時會顯示不同的輸出

[英]Why my JUnit test cases exhibit different output when run as a Test Suite and individual Junit file

我有一組JUnit測試文件以及一個測試套件(Suite類)文件,該文件包含對所有單個Junit測試文件的引用。

都是面向數據庫的。 使用的數據庫是Mysql,我使用Eclipse IDE來運行測試。

當單獨運行每個文件時,我得到正確的值並且斷言是正確的但是當從測試套件運行時它顯示不同的值。

我已經使每個JUnit測試文件獨立地使用不同的數據庫名稱訪問數據庫(即使表結構相同)

我們是否需要防止JUnit測試用例並行運行/數據庫相關語句需要驗證?

我建議你研究一下:

  • 任何靜態數據(單例,靜態方法等......)
  • 測試的順序(某些測試是否可能依賴於另一個測試創建,擦除或修改的某些數據?)
  • 如果您使用的是允許套件范圍的setUp或tearDown方法的框架,它們是否會以某種方式破壞單個測試?
  • 既然您正在使用數據庫,那么您的代碼是否可能是事務性的,但是在套件中運行測試時,某些事務不會在正確的時間提交(例如,不是在整個套件完成之前)?

這可能有兩個原因。

一個是你沒有正確構建套件,有些測試與其他測試共享資源。

另一個是當你完成測試時,你不回滾數據庫,所以下一個測試發現數據庫處於錯誤狀態。

暫無
暫無

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

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