Ответы пользователя по тегу Apache Ant
  • Как заставить Apache Ant игнорировать проверки SSL при загрузке файла через такс get?

    В 7-й Java по умолчанию включен SNI. В некоторых случаях это приводит к ошибке как у вас. Можно отключить SNI при запуске Ant или IDEA.

    -Djsse.enableSNIExtension=false
    Ответ написан
    Комментировать
  • Как протестировать java-классы из-под ant?

    Для запуска тестов вам необходимо передать junit две path-структуры: classpath и скомпилированные тесты. В classpath (в примере это переменная ${test.classpath}) передаются все необходимые для выполнения тестов библиотеки и тестируемые классы.
    В параметр dir нужно передать скомпилированные тесты. Следите за тем, чтобы туда не попадали вспомогательные классы из /test, так как junit попытается их выполнить.

    Пример:
    <target name="init-test" depends="prepare">
                    <path id="test.classpath">
    			<fileset dir="${lib}">
    				<include name="*.jar" />
    			</fileset>
    			<pathelement location="${project.classes.build}" />
    			<pathelement path="${test.build}" />
    			<pathelement path="${test.build}/etc" />
    			<pathelement path="${test.build}/etc/test" />
    			<pathelement path="${test.build}/etc/mappings" />
    		</path>
    		<fileset id="test.fileset" dir="${test}">
    			<include name="**/${test.class.pattern}.java"/>
    			<exclude name="**/Abstract${test.class.pattern}.java"/>
    			<exclude name="**/Base${test.class.pattern}.java"/>
    			<exclude name="**/TestUtils.java"/>
    		</fileset>
    		<copy todir="${test.build}/etc/test">
    			<fileset dir="${etc}/test"/>
    		</copy>
    		<copy todir="${test.build}/etc/test">
    			<fileset dir="${etc}/mappings"/>
    		</copy>
    		<copy file="${etc}/hibernate.cfg.xml" todir="${test.build}/etc"/>
    	</target>
    
    	<target name="compile-test" depends="compile, run-checks">
    		<javac srcdir="${test}"
    			destdir="${test.build}"
    			classpathref="run.classpath"
    			source="${minimum.javaversion}"
    			target="${minimum.javaversion}"
    			debug="${debug.mode}"
    			encoding="UTF-8"
    			includeantruntime="no" />
    		<copy todir="${test.build}">
    			<fileset dir="${test}">
    				<exclude name="**/*.java" />
    			</fileset>
    		</copy>
    	</target>
    
    	<target name="run-test" depends="init-test, compile-test">
    		<mkdir dir="${test.xml}" />
    
    		<junit 
    			haltonfailure="off"
    			haltonerror="off"
    			errorproperty="test.failed"
    			failureproperty="test.failed"
    			showoutput="no"
    			printsummary="yes"
    			includeantruntime="yes"
    			dir="${test.build}"
    			fork="true">
    			<jvmarg value="-Dfile.encoding=UTF8"/>
    			<classpath>
    				<path refid="test.classpath" />
    			</classpath>
    			<formatter type="xml"/>
    			<batchtest todir="${test.xml}">
    				<fileset refid="test.fileset" />
    			</batchtest>
    		</junit>
    	</target>
    
    	<target name="test" depends="run-test" description="Run unit tests">
    		<fail if="test.failed"
    			message="At least one test has failed. See logs (in ${test.xml}) for details (use the target test-report to run the test with a report)" />
    	</target>
    Ответ написан
    Комментировать
  • Как прогнать Ant'ом все junit-тесты и одновременно получить правильный код завершения?

    <target name="run-test" depends="init-test, compile-test" unless="option.skiptest">
    		<mkdir dir="${test.xml}" />
    
    		<junit 
    			haltonfailure="off"
    			haltonerror="off"
    			errorproperty="test.failed"
    			failureproperty="test.failed"
    			showoutput="no"
    			printsummary="yes"
    			includeantruntime="yes"
    			dir="${test.build}"
    			fork="true">
    			<classpath>
    				<path refid="test.classpath" />
    			</classpath>
    			<formatter type="xml"/>
    			<batchtest todir="${test.xml}">
    				<fileset refid="test.fileset" />
    			</batchtest>
    		</junit>
    	</target>
    
    	<target name="test" depends="run-test" unless="option.skiptest" description="Run unit tests">
    		<fail if="test.failed"
    			message="At least one test has failed. See logs (in ${test.xml}) for details (use the target test-report to run the test with a report)" />
    	</target>
    
    	<target name="test-report" depends="run-test" unless="option.skiptest" description="Run the test with report">
    		<junitreport todir="${test.xml}">
    			<fileset dir="${test.xml}">
    				<include name="TEST-*.xml"/>
    			</fileset>
    			<report format="noframes" todir="${reports}">
    			</report>
    		</junitreport>
    		<fail if="test.failed"
    			message="At least one test has failed. See logs (in ${test.xml}) or report (in ${reports})" />
    	</target>
    Ответ написан
    Комментировать