Я запускаю свой тест из тестовых файлов java junit. Получается файл из тестовой папки моего проекта. как ABCTest это мой проект. внутри этого проекта у меня есть папка test / testfiles , и там есть какой-то файл .xlsx. Когда я запускаю свой тестовый код из класса java из eclipse, например Run As-> Junit test , он может читать файл из этой папки.
fileNameWithPath="test/testfiles/abc.xlsx"
out = new ByteArrayOutputStream();
fis = new FileInputStream(fileNameWithPath);
bis = new BufferedInputStream(fis);
while ((c = bis.read()) != -1) {
out.write(c);
}
fileData = out.toByteArray();
Но для того же самого кода. Если я собираюсь запустить тестовый файл Java из скрипта ant, он получит ошибку
<target name="prepare" depends="resolve">
<mkdir dir="${build.dir}" />
<mkdir dir="${build.test.classes.dir}" />
<mkdir dir="${build.test.reports.dir}" />
<path id="test.cp">
<fileset dir="${lib.test.dir}">
<include name="junit-4.8.2.jar" />
<include name="dozer-*.jar" />
</fileset>
<fileset dir="${lib.dir}">
<include name="*.jar" />
</fileset>
<fileset dir="${lib.apache.dir}">
<include name="*.jar" />
</fileset>
</path>
</target>
<target name="tests.compile" depends="prepare">
<javac destdir="${build.test.classes.dir}" excludes="/backend/security/**/*.*" debug="true" optimize="true" deprecation="false" failonerror="true">
<src path="${src.test.dir}" />
<src path="${src.dir}" />
<classpath>
<path refid="test.cp" />
</classpath>
</javac>
<copy file="test/src/dozer.properties" todir="${build.test.classes.dir}" />
<copy file="test/src/test.log4j.properties" todir="${build.test.classes.dir}" />
<copy todir="${build.test.classes.dir}/testApplicationContexts">
<fileset dir="${src.test.dir}/testApplicationContexts" />
</copy>
<copy todir="${build.test.classes.dir}/test/testfiles">
<fileset dir="${basedir}/test/testfiles" />
</copy>
</target>
<target name="tests.run" depends="tests.compile">
<junit fork="yes" forkmode="once" haltonfailure="no" showoutput="no" printsummary="yes" maxmemory="256m">
<jvmarg value="-Dlog4j.configuration=test.log4j.properties"/>
<formatter type="xml" />
<classpath>
<pathelement location="${build.test.classes.dir}" />
<path refid="test.cp" />
</classpath>
<batchtest todir="${build.test.reports.dir}">
<fileset dir="${src.test.dir}">
<include name="**/FileReadTest.java" />
</fileset>
</batchtest>
</junit>
У меня нет фактической причины для этого.
Примечание: я использую пружинный MVC. и тест Junit для этого. Проект построен с муравьем.
Исключение, подобное этому
java.io.FileNotFoundException: test\testfiles\abc.xlsx (The system cannot find the path specified)