JUnit в скрипте сборки Ant пытается и не удается удалить каталог .svn - PullRequest
2 голосов
/ 04 июля 2011

Я следую примеру Pragmatic Project Automation. Я работаю на Windows 7 и вытаскиваю проект из локального репозитория Subversion. Когда я запускаю ant в базовом каталоге проекта, я получаю следующую ошибку [junit] couldn't delete .svn. Вот полный вывод команды:

Buildfile: S:\CruiseControl\builds\dms\checkout\dms\build.xml

prepare:
    [mkdir] Created dir: S:\CruiseControl\builds\dms\checkout\dms\build\prod
    [mkdir] Created dir: S:\CruiseControl\builds\dms\checkout\dms\build\test

compile:
    [javac] Compiling 5 source files to S:\CruiseControl\builds\dms\checkout\dms\build\prod

compile-tests:
    [javac] Compiling 7 source files to S:\CruiseControl\builds\dms\checkout\dms\build\test

test:
    [junit] Testsuite: com.pragprog.dms.DocumentTest
    [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.065 sec
    [junit] 
    [junit] Testsuite: com.pragprog.dms.SearchTest
    [junit] Tests run: 2, Failures: 0, Errors: 2, Time elapsed: 0.015 sec
    [junit] 
    [junit] Testcase: testTitleSearch(com.pragprog.dms.SearchTest): Caused an ERROR
    [junit] couldn't delete .svn
    [junit] java.io.IOException: couldn't delete .svn
    [junit]     at org.apache.lucene.store.FSDirectory.create(FSDirectory.java:166)
    [junit]     at org.apache.lucene.store.FSDirectory.<init>(FSDirectory.java:151)
    [junit]     at org.apache.lucene.store.FSDirectory.getDirectory(FSDirectory.java:132)
    [junit]     at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:160)
    [junit]     at com.pragprog.dms.Indexer.index(Unknown Source)
    [junit]     at com.pragprog.dms.SearchTest.setUp(Unknown Source)
    [junit] 
    [junit] 
    [junit] Testcase: testContentSearch(com.pragprog.dms.SearchTest):   Caused an ERROR
    [junit] couldn't delete .svn
    [junit] java.io.IOException: couldn't delete .svn
    [junit]     at org.apache.lucene.store.FSDirectory.create(FSDirectory.java:166)
    [junit]     at org.apache.lucene.store.FSDirectory.<init>(FSDirectory.java:151)
    [junit]     at org.apache.lucene.store.FSDirectory.getDirectory(FSDirectory.java:132)
    [junit]     at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:160)
    [junit]     at com.pragprog.dms.Indexer.index(Unknown Source)
    [junit]     at com.pragprog.dms.SearchTest.setUp(Unknown Source)
    [junit] 
    [junit] 

BUILD FAILED
S:\CruiseControl\builds\dms\checkout\dms\build.xml:33: Test com.pragprog.dms.SearchTest failed

Total time: 0 seconds

и файл build.xml:

<project name="dms" default="compile" basedir=".">
    <property name="build.dir" location="build" />
    <property name="build.prod.dir" location="${build.dir}/prod" />
    <property name="build.test.dir" location="${build.dir}/test" />
    <property name="doc.dir" location="doc" />
    <property name="index.dir" location="index" />
    <property name="src.dir" location="src" />
    <property name="test.dir" location="test" />
    <property name="vendor.lib.dir" location="vendor/lib" />
    <path id="project.classpath">
        <pathelement location="${build.prod.dir}" />
        <pathelement location="${build.test.dir}" />
        <fileset dir="${vendor.lib.dir}">
            <include name="*.jar" />
        </fileset>
    </path>
    <target name="prepare">
        <mkdir dir="${build.prod.dir}" />
        <mkdir dir="${build.test.dir}" />
    </target>
    <target name="compile" depends="prepare">
        <javac srcdir="${src.dir}" destdir="${build.prod.dir}" includeantruntime="false">
            <classpath refid="project.classpath" />
        </javac>
    </target>
    <target name="compile-tests" depends="compile">
        <javac srcdir="${test.dir}" destdir="${build.test.dir}" includeantruntime="false">
            <classpath refid="project.classpath" />
            <compilerarg value="-Xlint:unchecked" />
        </javac>
    </target>
    <target name="test" depends="compile-tests">
        <junit haltonfailure="true">
            <classpath refid="project.classpath" />
            <formatter type="brief" usefile="false" />
            <batchtest>
                <fileset dir="${build.test.dir}" includes="**/*Test.class" />
            </batchtest>
            <sysproperty key="doc.dir" value="${doc.dir}" />
            <sysproperty key="index.dir" value="${index.dir}" />
        </junit>
    </target>
    <target name="clean">
        <delete dir="${build.dir}" />
    </target>
</project>

Почему JUnit пытается удалить каталог .svn? Какой из них даже пытается удалить? Почему это не удается сделать?

1 Ответ

3 голосов
/ 04 июля 2011

Похоже, что тестовый пример testTitleSearch в com.pragprog.dms.SearchTest не выполняется.То же самое происходит с testContentSearch.Возможно, они пытаются очистить дом перед началом.Я предполагаю, что вы случайно поместили каталог с нулями для тестового примера в систему контроля версий при локальном клонировании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...