джунит и муравей. Не могу начать тест - PullRequest
2 голосов
/ 27 сентября 2010

Когда я запускаю тест junit от муравья, я всегда получаю:

D:\metrike>ant test
Buildfile: build.xml

init:

compile:

test:
    [junit] Running jmt.test.TestCodeBase
    [junit] Testsuite: jmt.test.TestCodeBase
    [junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0,046 sec
    [junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0,046 sec
    [junit]
    [junit] Testcase: warning(junit.framework.TestSuite$1):     FAILED
    [junit] No tests found in jmt.test.TestCodeBase
    [junit] junit.framework.AssertionFailedError: No tests found in jmt.test.TestCodeBase
    [junit]
    [junit]
    [junit] Test jmt.test.TestCodeBase FAILED

Это файл муравья:

<target name="test" depends="compile">
    <mkdir dir="target/test-results"/>
    <junit haltonfailure="no" printsummary="on">
        <classpath >
            <pathelement location="target/classes"/>
            <pathelement location="Libraries/junit3.8.1/junit.jar"/>
        </classpath>
        <formatter type="brief" usefile="false"/>
        <formatter type="xml" />
        <batchtest todir="target/test-results" >
            <fileset dir="target/classes" includes="**/TestCodeBase.class"/>
        </batchtest>
    </junit>
</target>

Но когда я запускаю тест вручную, тест junit работает:

D:\metrike>cd target

D:\metrike\target>cd classes

D:\metrike\target\classes>java jmt.test.TestCodeBase
fatsource.jar eclapsed : 2297 ms
over all : 2297 ms
contains 3073 classes and 3700 referred classes, 35968 referred methods, 22351 referred fields
Memory usage: 21326 KB
Post gc-memory usage: 19506 KB
contains 3073 classes and 3700 referred classes, 35968 referred methods, 22351 referred fields

Может кто-нибудь сказать, пожалуйста, что я делаю не так? Я пытался исправить это целый день, но не могу найти решение.

Ответы [ 3 ]

4 голосов
/ 27 сентября 2010

1) Расширяет ли jmt.test.TestCodeBase TestCase (junit.framework.TestCase)?

Если нет, его нужно будет найти в задаче junit ant.

2) Класс написан как Junit TestCase или он вызывается только из основного метода?См. эту ссылку для примера написания простых тестов в стиле Junit3.Для Junit4 просто добавьте @Test над методами.

3) Методы тестирования в стиле Junit3 (каждый метод начинается с test) или в стиле Junit4 (каждый метод имеет @Test над ним)?

Если Junit3, тебе следует идти.Если вы используете Junit4, вам нужно включить тестовую библиотеку Junit4 в путь к муравьям, а не использовать junit3.8.1.

1 голос
/ 27 сентября 2010

Кажется, ваш тестовый класс на самом деле не является тестовым классом JUnit. Когда вы запускаете его вручную, вы запускаете его не как тест, а как обычное приложение Java. В классе есть метод main, верно? Чтобы запустить тест JUnit 3 (который, похоже, вы используете), класс должен расширить TestCase и иметь один или несколько открытых методов void, имена которых начинаются с «test». Для тестирования я бы попробовал запустить класс как тест JUnit в IDE.

0 голосов
/ 27 сентября 2010

Пожалуйста, отправьте пример кода jmt.test.TestCodeBase, esp. определение класса и один из методов тестирования.

Похоже, вы используете public static int main() вместо соглашения JUnit public void testFoo(). Если вы используете JUnit4, ваши методы тестирования должны иметь аннотацию @Test.

Тесты JUnit обычно нельзя запустить только с java <Testclass>

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