2014-01-30 2 views
0

ant 도구를 사용하여 Jenkins의 테스트 (junit) 캠페인을 실행하는 동안 런타임시 예외가 있습니다. java.util.MissingResourceException : 기본 이름을 com.mainpackage.V_45_4_3.view.translation.Translation, 로케일 ko 페이지는개미 - Java 프로젝트 - 런타임에 .properties가있는 런타임에 예외가 발생했습니다.

Translation_en_US.properties 해당 디렉토리에 존재하고 경로/클래스 패스 문제입니다 것 같습니다.

이것은 개미 빌드 도구를 사용할 때만 발생합니다. 이클립스에서 모든 것이 잘 동작한다. 나는 개미가 사용하는 .xml 파일을 붙여 넣을 수 있습니다 :

<?xml version="1.0" encoding="UTF-8"?> 

<!-- --> 

<property name="root.dir" location="." /> 
<property name="src.dir" location="${root.dir}/src" /> 
<property name="bin.dir" location="${root.dir}/bin" /> 
<property name="lib.dir" location="${root.dir}/lib" /> 

<property name="local.tests.dir" location="C:/NEMTESTS" /> 

<property name="test.src.dir" location="${root.dir}/tests" /> 

<property name="test.bin.dir" location="${local.tests.dir}/bin" /> 




<property name="javaClasspath" value=" 
      ${root.dir}; 
      ${bin.dir}; 
      ${lib.dir}/AdventNetSnmp.jar; 
      ${lib.dir}/AdventNetLogging.jar; 
      ${lib.dir}/ranabFtp.jar; 
      ${lib.dir}/castor-1.2.jar; 
      ${lib.dir}/synthetica.jar; 
      ${lib.dir}/alu_LAF.jar; 
      ${lib.dir}/jbasiccomp_java2.jar; 
      ${lib.dir}/jnavapi_java2.jar; 
      ${lib.dir}/jsch-0.1.50.jar; 
      ${lib.dir}/j2ssh-daemon-0.3.1.jar; 
      ${lib.dir}/j2ssh-core-0.3.1.jar; 
      ${lib.dir}/j2ssh-common-0.3.1.jar; 
      ${lib.dir}/j2ssh-core-0.2.9.jar; 
      ${lib.dir}/commons-io-1.4.jar; 
      ${lib.dir}/tar.jar; 
      ${lib.dir}/maverick-debug-all.jar; 
      ${lib.dir}/maverick-sshd-debug-no-j2ssh.jar; 
      ${lib.dir}/fest-assert-1.3.jar; 
      ${lib.dir}/fest-reflect-1.2.jar; 
      ${lib.dir}/fest-swing-1.2.jar; 
      ${lib.dir}/fest-util-1.1.4.jar; 
      ${lib.dir}/fest-swing-junit-1.2.jar; 
      ${lib.dir}/fest-swing-junit-4.5-1.2.jar; 
      ${lib.dir}/jcip-annotations-1.0.jar; 
      ${lib.dir}/junit-4.8.2.jar; 
      ${lib.dir}/pmd-4.2.5.jar; 
      ${lib.dir}/asm-3.1.jar; 
      ${lib.dir}/jaxen-1.1.1 
      ${lib.dir}/log4j-java1.1.jar; 
      ${lib.dir}/commons-logging-1.1.jar" /> 

<target name="test" depends="prepare, test-compile, run-tests, finish-errors, finish" /> 

<target name="prepare"> 

    <delete dir="${test.bin.dir}"/> 
    <mkdir dir="${test.bin.dir}" /> 

</target> 


<target name="test-compile" description="Compile Java tests"> 

    <javac destdir="${bin.dir}" debug="false" optimize="yes" fork="yes" includeantruntime="false" > 
     <src refid="test-src-path" /> 
     <classpath> 
      <path refid="test-lib-path" /> 
      <path refid="run-classpath" /> 
     </classpath> 
    </javac> 
</target> 

<target name="run-tests" description="Run GUI tests"> 
    <junit fork="no" haltonfailure="no" haltonerror="no" errorproperty="test.failed" failureproperty="test.failed" printsummary="no" showoutput="yes"> 
     <jvmarg value="-Xmx1024m" /> 


     <classpath> 
      <path refid="test-lib-path" /> 
      <path refid="run-classpath" /> 
     </classpath> 

     <formatter classname="nem.utils.OneLinerFormatter" usefile="false" /> 
     <formatter type="xml" /> 

     <test name="nem.AllTests" todir="${test.bin.dir}" /> 
    </junit> 

    <junitreport todir="${local.tests.dir}"> 
     <fileset dir="${local.tests.dir}" > 
      <include name="TEST-*.xml" /> 
     </fileset> 
     <report todir="${local.tests.dir}" format="frames"/> 
    </junitreport> 
</target> 


<target name="finish-errors" if="test.failed"> 
    <echo>GUI tests failed. Check logs in workspace for details</echo> 
</target> 

<target name="finish" unless="test.failed"> 
    <echo>NEM is ok. Is it ...?</echo> 
</target> 

<path id="run-classpath"> 
    <pathelement location="${bin.dir}" /> 
    <path refid="test-lib-path" /> 
</path> 

<path id="test-src-path"> 
    <pathelement location="${test.src.dir}" /> 
</path> 

<path id="test-lib-path"> 
    <fileset dir="${lib.dir}"> 
     <include name="**/*.jar" /> 
    </fileset> 
</path> 

<path id="test-run-classpath"> 
    <pathelement location="${test.bin.dir}" /> 
    <path refid="test-lib-path" /> 
</path> 

편집 :

글쎄, 난 모든 것을 내가있어 이클립스에서 잘 작동 말한다 JUnit (Eclipse 통합)을 사용하여 테스트를 시작하고 실행해야한다고 말합니다.

오류는 명령 줄에서 ant -f .xml을 실행할 때도 나타납니다. 그건 같은거야.

prepare: 
    [delete] Deleting directory C:\NEMTESTS\bin 
    [mkdir] Created dir: C:\NEMTESTS\bin 

test-compile: 

run-tests: 
    [junit] 
    [junit] ---------------------------------------------------------- 
    [junit] Testsuite: nem.AllTests 
    [junit] java.util.MissingResourceException: Can't find bundle for base name mainpackage.rlr14_01.V_45_4_3.view.translation.Translation, locale en_US 
    [junit]  at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499) 
    [junit]  at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322) 
    [junit]  at java.util.ResourceBundle.getBundle(ResourceBundle.java:795) 
    [junit]  at mainpackage.base.view.translator.Translator.createTranslation(Translator.java:125) 
    [junit]  at mainpackage.base.view.translator.Translator.<init>(Translator.java:31) 
    [junit]  at mainpackage.base.view.translator.TranslatorFactory.getTranslator(TranslatorFactory.java:116) 
    [junit]  at mainpackage.base.manager.BsManager.setMibVersion(BsManager.java:1469) 
    [junit]  at mainpackage.base.action.ConnectAction.action(ConnectAction.java:314) 
    [junit]  at mainpackage.base.action.AbstractAction.run(AbstractAction.java:164) 
    [junit]  at java.lang.Thread.run(Thread.java:744) 
    [junit] mainpackage.base.view.translator.exception.TranslationException: Cannot load translation for locale en_US and MIB version #R_LR14_01_L#V_45.4.3; will use locale en_US and no MIB version. 
    [junit]  at mainpackage.base.view.translator.Translator.createTranslation(Translator.java:163) 
    [junit]  at mainpackage.base.view.translator.Translator.<init>(Translator.java:31) 
    [junit]  at mainpackage.base.view.translator.TranslatorFactory.getTranslator(TranslatorFactory.java:116) 
    [junit]  at mainpackage.base.manager.BsManager.setMibVersion(BsManager.java:1469) 
    [junit]  at mainpackage.base.action.ConnectAction.action(ConnectAction.java:314) 
    [junit]  at mainpackage.base.action.AbstractAction.run(AbstractAction.java:164) 
    [junit]  at java.lang.Thread.run(Thread.java:744) 
    [junit] java.util.MissingResourceException: Can't find bundle for base name mainpackage.rlr14_01.V_45_4_3.view.translation.Translation, locale en_US 
    [junit]  at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499) 
    [junit]  at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322) 
    [junit]  at java.util.ResourceBundle.getBundle(ResourceBundle.java:795) 
    [junit]  at mainpackage.base.view.translator.Translator.createTranslation(Translator.java:125) 
    [junit]  at mainpackage.base.view.translator.Translator.<init>(Translator.java:31) 
    [junit]  at mainpackage.base.view.translator.TranslatorFactory.getTranslator(TranslatorFactory.java:120) 
    [junit]  at mainpackage.base.manager.BsManager.setMibVersion(BsManager.java:1469) 
    [junit]  at mainpackage.base.action.ConnectAction.action(ConnectAction.java:314) 
    [junit]  at mainpackage.base.action.AbstractAction.run(AbstractAction.java:164) 
    [junit]  at java.lang.Thread.run(Thread.java:744) 
    [junit] Exception in thread "ConnectAction" java.lang.NullPointerException 
    [junit]  at mainpackage.base.action.AbstractAction.run(AbstractAction.java:174) 
    [junit]  at java.lang.Thread.run(Thread.java:744) 
Build was aborted 
+0

우리에게 조금 더 상황을주십시오 :

은 아마 당신은 뭔가를해야합니다. 어떤 대상을 실행합니까? 그리고 오류가있는 대상은 무엇입니까? Jenkins에서 실행되는 동안에 만 오류가 나타나는지 또는 명령 줄에서 Ant를 실행하여 재현 할 수 있습니까? 전체 스택 추적을 게시 할 수 있습니까? "이클립스에서 모든 것이 잘 작동한다"정확히 무엇을 의미 하는가? Eclipse에서 Ant 태스크를 실행합니까? – vanje

+0

원래 게시물을 편집했습니다. –

답변

0

자네 말이 맞아 :

다음은 전체 스택 추적입니다. 그것은 단지 경로 문제 일뿐입니다.

는 어디서 동일한 패키지에

ResourceBundle.getBundle(propertyFileName, locale) 

내 속성 파일을 사용하여, 어제이 문제를 가지고 있었다. 속성 파일을 읽는 데 사용하는 명령은 무엇입니까?

속성 파일을 원본 폴더로 이동하여 해결했습니다.

com.example.common 패키지가 src 폴더에있는 src 폴더에 있으면 .../src/com/example/common 파일 시스템에 있습니다.

  1. 이 예에서는 propery 파일을 "src"폴더로 이동해야합니다.

  2. 당신이 STIL 오류가있는 경우 :

당신이 당신의 개미 스크립트 속성 파일을 복사를? 스크립트에서 찾을 수 없습니다.

<copy todir="${basedir}/yourDestinationPath"> 
    <fileset dir="${basedir}/src" includes="*.properties"/> 
</copy> 
+0

해결책을 시도했지만 제대로 작동하지 않습니다. .properties 파일을 src 폴더에 수동으로 복사했는데 아무 것도 변경되지 않았습니다. –

+0

여기에 속성 파일 : mainpackage.rlr14_01.V_45_4_3.view.translation.Translation? junit 테스트를보고 getBundle (...) 명령이 사용되는 위치를 찾으십시오. –

관련 문제