C'è un modo in fase di test per iniettare una proprietà nel Manifest Java (o iniettare un intero manifest)?Set test di Java set Proprietà manifest
Stiamo leggendo un valore dal manifest (numero di versione) che al momento del test si risolve in null.
Finora abbiamo provato a inserire un file MANIFEST.MF codificato nella nostra root di test, ma non ha funzionato.
Questo è il codice che utilizziamo per leggere il manifesto:
private Attributes getManifest() {
URLClassLoader cl = (URLClassLoader) getClass().getClassLoader();
Manifest manifest;
try {
URL url = cl.findResource("META-INF/MANIFEST.MF");
manifest = new Manifest(url.openStream());
} catch (IOException e) {
throw Throwables.propagate(e);
}
return manifest.getMainAttributes();
}
Come ultima risorsa ci avvolgiamo la funzionalità che legge il manifesto e modelli, ma questi sono test di integrazione, e si suppone che essere scatola nera (cioè, stiamo evitando di deridere).
Ulteriori informazioni: Java 7, esecuzione di test Junit in IntelliJ o da Gradle.
Così, quando si esegue un test, dove si MANIFEST.MF si trova, esattamente? –
Perché si desidera modificare java manifest quando si eseguono test (probabilmente JUnit?) Quando test è un'applicazione Java autonoma e non un'applicazione in esecuzione in un contenitore? – czpona