簡體   English   中英

Pact 框架 - 僅運行一項測試

[英]Pact framework - running one test only

我使用 PACT 編寫了一個提供程序測試 class,它有兩個測試。 當我運行整個 class 時,測試成功運行,但我不能僅通過右鍵單擊一個 @State 來運行一個測試,因為似乎沒有找到任何測試。 關於如何僅在 IntelliJ 中運行一項測試的任何想法? 提供商測試 class:

@consumer("teh_consumer")
@Provider("teh_provider")
@PactBroker
@IgnoreNoPactsToVerify
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
//@SpringBootTest
public class TehAppContractTests {

@TestTarget
public final Target target = new SpringBootHttpTarget();

@State("Teh services are up")
public void testServicesUpRequest() {
}

@State("Teh services are down")
public void testServicesDownRequest() {
}
}

堆棧跟蹤:

java.lang.Exception: No tests found matching Method testServicesUpRequest(com.teh.contract.TehAppContractTests) from org.junit.internal.requests.ClassRequest@191e654

at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:50)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)

據我所知,驗證特定交互的唯一方法是使用 @PactFilter

https://docs.pact.io/implementation_guides/jvm/provider/junit#interaction-filtering

因此,要動態地執行此操作,我們可以將交互過濾器值作為環境變量傳遞給測試運行器。

為了通過 IntelliJ 執行此操作,您可以創建一個基於 gradle 任務的運行配置,為您設置它(僅當您需要動態時)。 對於 static ,您可以硬編碼 @PactFilter 注釋中的值。

還只是為了補充您關於@State 的問題......狀態通常類似於@Before 塊。 他們不執行任何測試,而是在所需的 state 中為您設置應用程序。

希望這可以幫助!

暫無
暫無

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

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