# Test-Klassen in gleichem Paket



## borobudur (7. Okt 2010)

Hallo, ich möchte gerne den package-private mechanismus verwenden und muss wohl unit-test-klassen somit in diesem package platzieren damit ich auf die package-private-klassen zugreifen kann. 

Gibt es eine technik, die beim deployment die test-klassen stehen lässt?

Besten dank!


----------



## bygones (7. Okt 2010)

bei welchem deplyoment ?

test klassen gehören sowohl in einen anderen source folder als auch deren kompilate in einen eigenen folder.

somit sind sie dann physisch voneinander getrennt


----------



## SlaterB (7. Okt 2010)

wobei aber immer noch dieselben packages möglich sind, falls das unklar war,
getrennt und doch zusammengehörend..


----------



## borobudur (7. Okt 2010)

bygones hat gesagt.:


> bei welchem deplyoment ?
> 
> test klassen gehören sowohl in einen anderen source folder als auch deren kompilate in einen eigenen folder.
> 
> somit sind sie dann physisch voneinander getrennt


Wenn sie physisch getrennt sind kann ich aber die package-private-klassen nicht testen!


----------



## maki (7. Okt 2010)

borobudur hat gesagt.:


> Wenn sie physisch getrennt sind kann ich aber die package-private-klassen nicht testen!


Doch, sie müssen nur im selben ("logischen") package liegen, nicht im selben Ordner auf der Platte


----------



## SlaterB (7. Okt 2010)

-->


SlaterB hat gesagt.:


> wobei aber immer noch dieselben packages möglich sind, falls das unklar war,
> getrennt und doch zusammengehörend..


<--

oder hast du eine bestimmte Fehlermeldung?
man muss die anderen Klassen natürlich korrekt importieren und es dürfen nicht irgendwelche Sicherheitseinstellungen den Zugriff verhindern


----------



## bygones (7. Okt 2010)

bsp:


```
package foobar

class MyFoobar {
 // ... methoden
}
```
liegt unter src/main/java und landet in target/classes


```
package foobar

public class MyFoobarTest {
 // tests für MyFoobar
}
```
liegt unter src/test/java und landet in target/test-classes

dennoch kannste alles package private von MyFoobar in MyFoobarTest testen


----------



## borobudur (10. Okt 2010)

maki hat gesagt.:


> Doch, sie müssen nur im selben ("logischen") package liegen, nicht im selben Ordner auf der Platte



Genau diese konfiguration kenne ich nicht, dass die test-klassen im gleichen logischen package sind aber doch physisch getrennt auf der disk.

Wie macht man das unter eclipse?

Thanks!


----------



## maki (10. Okt 2010)

Einfach einen neuen Source Ordner anlegen.

Rechtsklick aufs Projekt -> New -> Source Folder und zB. "test" nennen.

Darunter dann die gleiche Packagstruktur anlegen.


----------



## gman (10. Okt 2010)

@maki: Muss man unter Eclipse nicht auch dafür sorgen das die class-Dateien in einen anderen Ordner
generiert werden? Sonst landen die ja auch in der Jar/War-Datei.


----------



## maki (10. Okt 2010)

gman hat gesagt.:


> @maki: Muss man unter Eclipse nicht auch dafür sorgen das die class-Dateien in einen anderen Ordner
> generiert werden? Sonst landen die ja auch in der Jar/War-Datei.


Ja!


----------



## borobudur (18. Okt 2010)

gman hat gesagt.:


> @maki: Muss man unter Eclipse nicht auch dafür sorgen das die class-Dateien in einen anderen Ordner
> generiert werden? Sonst landen die ja auch in der Jar/War-Datei.



Wie mache ich das genau, dass die test binaries in einen separaten folder gehen?


----------



## bygones (18. Okt 2010)

borobudur hat gesagt.:


> Wie mache ich das genau, dass die test binaries in einen separaten folder gehen?



auf den test source folder per rechtsklick -> Build Path -> Configure Output Folderm -> Specific output folder


----------



## borobudur (18. Okt 2010)

bygones hat gesagt.:


> auf den test source folder per rechtsklick -> Build Path -> Configure Output Folderm -> Specific output folder



Thanks!


----------

