2009-01-21 21 views
11

My Ant build bazı testleri çalıştıran bir junit görevi içerir. Testlerin çalışması için, geçerli çalışma dizinini (user.dir) belirten özellik değeri değiştirilmelidir, ancak bunu nasıl başaracağından emin değilim.Ant 'junit' görevinin çalışma dizinini nasıl ayarlayabilirim?

Ben C'ye çalışma dizini değiştirmek için "dir" özelliğini ve "jvmarg" görevi hem kullanmayı denedik
<junit printsummary="withOutAndErr" fork="true" 
      haltonfailure="yes" showoutput="true" 
      filtertrace="false" dir="C:/workspace/obp-web"> 
    <jvmarg value="-Duser.dir=C:/workspace/obp-web"/> 

    <classpath> 
     <fileset dir="${web.lib.dir}" includes="**/*.jar"/> 
     <fileset dir="${lib.dir}" includes="**/*.jar"/> 
    </classpath>  
    <batchtest fork="no" todir="${web.build.dir}/testresults"> 
     <formatter type="xml"/> 
     <zipfileset src="${web.build.dir}/test-obp-web.jar"> 
      <include name="**/*Test.class"/> 
     </zipfileset>   
    </batchtest> 
</junit> 

Uyarı:/Çalışma alanı

söz konusu görev şu anda şöyle/obp-web. Ancak Ant çalıştırdığınızda ayrıntılı çıkış açıkken, görüyorum çalışma dir doğru ayarlanmamış belirten aşağıdaki çıkışı:

[junit] gözardı dir nitelik aynı VM

çalışan eğer

Sistem özellikleri kullanılarak [jUnit] {java.runtime.name = Java (TM) SE Runtime Çevre, sun.boot.library.path c: \ JDK6 \ jre \ bin java.vm .version = 10.0-b23, ant.lib rary.dir = C: \ java \ apache-ant-1.7.0 \ lib, java.vm.vendor = Sun Microsystems, java.vendor.url = http://java.sun.com/, path.separator = ;, java.vm.name = Java Etkin Nokta (TM) istemci VM file.encoding.pkg = sun.io, user.country = CA, sun.java.launcher = SUN_STANDARD, sun.os.patch.level = Service Pack 1, java.vm.specification.name = Java Virtual Machine Şartname, kullanıcı .dir = c: \ workspace \ obp-ear, java.runtime.version = 1.6.0_07-b06, java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment, java.endorse d.dirs = c: \ jdk6 \ jre \ lib \ onaylı, os.arch = x86, java.io.tmpdir = C: \ Users \ donal \ AppData \ Local \ Temp \, line.separator =

cevap

7

bir jvmarg kullanmayı deneyin:

<junit fork="yes"> 
    <jvmarg value="-Duser.dir=somedir"/> 
    ... 
</junit> 

Not o çatal zorunlulukjunit etiketi ve batchtest etiket olarak batchtest etiketi hem doğru JUnit değeri geçersiz kılar. Jvmargs sadece cunta yeni bir JVM'yi isterse işe yarar.

+1

Bunu denedim, ama şans yok. Orijinal öğeyi bilgi ile güncelledim. –

+0

Geçerli çalışma dizinini, user.dir ayarlayarak Java'da değiştiremezsiniz. Sistem özelliğinin değiştirilmesi bir kullanıcı hatası olarak kabul edilir. –

+1

@David Bu doğrudur, ancak bir JVM – Kevin

13

niteliği "dir" kullanın (ayrıca vm çatal olmalıdır):

http://ant.apache.org/manual/Tasks/junit.html

+0

Bunu denedim, ama şans yok. Orijinal öğeyi bilgi ile güncelledim. –

+0

Benim için çalıştı. –

+3

Bu benim için de çalıştı. Çatal unutun = "evet". – thSoft

0

Eğer pathelement yerini denediniz mi? Bu benim için çalıştı.

<classpath> 
<!-- filesets, etc. --> 
<pathelement location="C:/workspace/obp-web" /> 
    </classpath> 
0

Sizinle aynı sorun...

batchtest çatal = "hiçbir "..

için

batchtest çatal =" evet":

Ben true batchtest çatalını yaparak bunu çözüldü