testcontainers / testcontainers/testcontainers-java
[Enhancement]: ScriptUtils::runInitScript should load script also from local directory
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
Module
Core
Proposal
The ScriptUtils::runInitScript only accepts paths from the classpath. This isn't as powerful as I would have expected given:
- Absolute paths or relative paths local to the maven module, for example, are useful as well
- Being on the classpath means the Maven
compile(ortest-compile) phase must have run, but what if I want to use testcontainers in thegenerate-sources(orgenerate-test-sources) phase, e.g. to generate jOOQ code? In that case, the init scripts aren't available on the classpath yet, unless I create a separate module just for this, which is overkill
Additionally, there are many cases where the script doesn't have to be a file. An inline script in String form would suffice, e.g.
container.initScript("""
create schema test;
create table test.test (test int);
""");
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 bei ScriptUtils::runInitScript und der in dem Vorschlag erwähnten container.initScript API. Verfolgen Sie, wie classpath-Skripte aufgelöst werden, und bestimmen Sie anschließend, wie lokale absolute oder relative Pfade und Inline-String-Skripte akzeptiert werden sollen. Erledigt ist die Aufgabe, wenn jede unterstützte Eingabeform funktioniert und Tests lokale Pfade sowie Inline-SQL abdecken.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- testing
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100