testcontainers / testcontainers/testcontainers-java
Use Executor in AbstractWaitStrategy
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 8.7k
- Forks
- 1.9k
- Ø Merge
- 2 T. 17 Std.
- Gemergte PRs (30 T.)
- 9
Beschreibung
I am trying to bridge to a suspend version of waitUntilReady in AbstractWaitStrategy with something along the lines of:
suspend fun strategy(waitingStrategyTarget: WaitingStrategyTarget): Unit {
// run your strategy
}
class MyWaitStrategy : AbstractWaitStrategy() {
override fun waitUntilReady() {
val executor: ExecutorService = EXECUTOR // executor from AbstractWaitStrategy
runBlocking(executor.asCoroutineDispatcher()) {
strategy(waitingStrategyTarget)
}
}
}
or in a TestScope with JUnit this may look like:
@Test
fun testWithSuspendedWaitStrategy() =
runTest {
val strategy =
waitStrategy { target ->
// run my strategy
}
// MyContainer.waitUntil(strategy, ....)
}
fun TestScope.waitStrategy(
f: CoroutineScope.(target: WaitStrategyTarget) -> Unit
): AbstractWaitStrategy =
object : AbstractWaitStrategy() {
override fun waitUntilReady() {
launch(EXECUTOR.asCoroutineDispatcher()) {
f(this, waitStrategyTarget)
}
}
}
Is there a way how to implement this with EXECUTOR, being public instead of package private, or with another Executor, ExecutorService or something.
Any Feedback is welcome :D
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie mit dem Lesen von core/src/main/java/org/testcontainers/containers/wait/strategy/AbstractWaitStrategy.java, insbesondere der EXECUTOR-Deklaration und der Integration von waitUntilReady. Das Issue enthält Beispiele für Kotlin-Coroutines, aber keine benannten Tests oder Akzeptanzkriterien; eine abgeschlossene Änderung würde einen abgestimmten Ansatz dafür erfordern, wie der Executor offengelegt oder ersetzt werden kann, sowie eine definierte Methode, um ausgesetzte Wait-Strategien zu überprüfen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java, kotlin
- Bereich
- testing
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 20/100