Hudson - Resourcen laden

  • Themenstarter Themenstarter bygones
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
B

bygones

Gast
Hi,

ich bin gerade am rumexperimentieren mit Hudson, da wir vll von CruiseControl darauf umsteigen wollen.

Es gibt Tests in der Codebasis, die Resourcen ueber clazz.getResource() bzw getClass().getClassLoader().getResource laden.

Der Cruise laeuft damit ohne Problem durch und die Tests sind auch erfolgreich.

Hudson jedoch findet die Resourcen nicht und die Tests scheitern....

ich habe leider keine Ahnung was hier der Unterschied sein koennte... hat jemand einen Tipp wo ich vll was nachschauen kann ?

Danke
 
zb bekomm ich ueber hudson die meldung

java.io.FileNotFoundException: C:\Dokumente%20und%20Einstellungen\foo\.hudson\jobs\workspace\product\Project\tests\classes\de\bar\foobar\conflictYellow.gif (Das System kann den angegebenen Pfad nicht finden)

die Datei gibt es aber und ist auch unter diesem Pfad vorhanden
 
Bei dem ersten Fehler wäre interessant, wie der Code dazu aussieht bzw. das Layout der Ressourcen etc.
Ist das ein Ant Build? Dann wären auch die Scripte dazu interessant, zumindest die relevanten Teile.

Beim 2. Fehler finde ich interessant dass da %20 im Pfad steht, da wird aber nicht zufällig die toURL Methode genutzt? 😉
 
Bei dem ersten Fehler wäre interessant, wie der Code dazu aussieht bzw. das Layout der Ressourcen etc.
zwei situation gibt es:

1. die Resource liegt im test/src ordner (bzw dann auch im test/classes). Der referenzierende Code liegt in einem Package, das sich unter dem test/src befindet.
Der Code schaut so aus:
Java:
    private String absolutePath(String locationOfResourceInClasspath) {
        URL resource = getClass().getClassLoader().getResource(locationOfResourceInClasspath);
        return resource == null ? locationOfResourceInClasspath : resource.getFile();
    }
aufgerufen wird das mit [c]absolutePath("dieDatei")[/c]

2. die Resource liegt mit im package in dem auch der referenzieren Code sich befindet.
Der Code schaut so aus:
Java:
URL url = clazz.getResource(resouceName);
return new File(url.getFile());
aufgerufen auch mit dem einfachen Dateinamen. Das produziert die %20

Ist das ein Ant Build? Dann wären auch die Scripte dazu interessant, zumindest die relevanten Teile.
jo isses - da befuerchte ich a) zuweit ausholen zu muessen und b) um nicht gg Verschwiegenheitspflichten zu verstossen zu viel aendern zu muessen...
Der generelle Ablauf ist:

Ermittel mit ant4eclipse alle Projekte in der richtigen Reihenfolge -> baue alle Projekte -> ermittel fuer jedes Projekt den Classpath und fuehre dann fuer alle Klassen die auf Test enden Junit aus
Java:
<getEclipseClasspath project="${project}" pathId="test.classpath" runtime="true" />
<junit fork="yes" errorproperty="test.failed" failureproperty="test.failed">
			<classpath>
				<path refid="test.classpath"/>
				<!-- einige Tests brauchen log4j zur Laufzeit -->
				<pathelement path="${admin.dir}/lib/log4j.jar"/>
				<fileset dir="${workspace}/TestFiles">
				        <include name="**/*.jar"/>
			      </fileset>
			</classpath>

			<formatter type="plain" usefile="false"/>
			<formatter type="xml"/>
			
			<!-- Tests ausführen -->	
			<batchtest todir="${test-results}">
			    <fileset dir="${test-classes}"
				     includes="${param.include}"
					 excludes="${param.exclude}"/>
			</batchtest>
	    </junit>
 
hab mal das laden der resourcen auf
[c]Thread.currentThread().getContextClassLoader().getResource[/c]
umgestellt.

nun kommt kein FileNotFoundException mehr... nun kommt bei beiden einfach null ;-)
 
Wäre mit der Konvertierung von URL zu File vorsichtig (bzw. URL#toFile), mal so aus neugier, liegt CruiseControl auch in einem Ordner dessen Pfad Leerzeichen hat?
 
ne der laeuft auf ner unix maschine... hudson test ich auf meinem windows rechner
 
ich mach mal n testlauf mit hudson auf einem nicht mit leerzeichen bestehenden pfad...
 
Kann dir ehrlich gesagt nicht sagen wo das Problem ist, würde mal Testen was passiert wenn du das File mit einem URI instatiierst anstatt eines Strings.
 
0:1 fuer windows.

es scheinen die leerzeichen im Pfad das problem gewesen zu sein... unter anderem pfad laeuft der build momentan durch 😀
 
2x bygones, 1x maki, 2x bygones, 1x maki, 2x bygones, 1x maki, 1x bygones
-> du muss nochmal antworten, bevor maki wieder dran ist,

ach nein, jetzt hab ich alles durcheinander gebracht
 
ach nein, jetzt hab ich alles durcheinander gebracht
280
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben