簡體   English   中英

我可以強制Junit調試器通過使用Eclipse IDE的自定義測試用例方法來開始調試執行嗎?

[英]Can I force Junit debugger to start debugging execution by a custom test case method using Eclipse IDE?

我有一個包含3種測試方法的測試類,如下例

public class SampleTest {
    @Test
    public void testAdd() {
        // logic of testing ADD
    }
    @Test
    public void testUpdate() {
        // logic of testing UPDATE
    }
    @Test
    public void testDelete() {
        // logic of testing Delete
    }
}

我只想調試第二種方法testUpdate()
無需其他任何測試用例testAdd() / testDelete()開始執行

當我在所有測試方法中都設置breakpoints
我找到
未授予執行順序 ,在某些情況下, testAdd() / testDelete()方法在testUpdate()之前運行
這些情況浪費時間,因為我只需要調試method2 = testUpdate()
那么為什么我應該等待method1或method3被執行,但是它們運行很快

總結一下
我可以強制Junit調試器通過使用Eclipse IDE的自定義測試用例方法開始執行嗎?

您可以使用測試執行順序:

https://github.com/junit-team/junit4/wiki/test-execution-order

其他方式:

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@FixMethodOrder(MethodSorters.JVM)
@FixMethodOrder(MethodSorters.DEFAULT)

例如,通過選擇使用NAME_ASCENDING,您應該更改第二個測試名稱,以使其按字母順序排在其他測試之前

您是否嘗試過選擇方法並單擊調試? 或者您是否嘗試過執行整個測試,然后右鍵單擊並調試來選擇方法?

首選方式 :任何現代IDE均具有運行和調試特定測試的能力。 請參閱您的IDE手冊。

骯臟的方式 :忽略除以下情況以外的其余測試用例:

public class SampleTest {
    @Test
    @Ignore
    public void testAdd() {
        // logic of testing ADD
    }

    @Test
    public void testUpdate() {
        // logic of testing UPDATE
    }

    @Test
    @Ignore
    public void testDelete() {
        // logic of testing Delete
    }
}

非常感謝@Dmytro評論。
解決方案將是

  1. 在“ Package Explorer或“ Outline視圖中
  2. 展開包含測試方法的測試類。
  3. 右鍵單擊要Debug的所需方法
  4. 選擇Debug As => JUnit Test

暫無
暫無

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

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