[英]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.