У меня есть собственный бегун, который отправляет тесты Junit через сокет-соединение с сервером Junit, работающим на другом оборудовании. Тесты выполняются, как и предполагалось, со следующей целью:
<target name="run">
<mkdir dir="reports" />
<junit fork="yes" haltonfailure="no">
<test name="${CurrentTest}" />
<formatter type="xml" />
<classpath refid="mastersuite.classpath" />
</junit>
<junitreport todir="${JunitReport.dir}">
<fileset dir=".">
<include name="TEST-*.xml" />
</fileset>
<report todir="${JunitReport.dir}" />
</junitreport>
</target>
Однако, когда я добавляю следующий элемент ...
<target name="run">
<delete dir="reports" failonerror="false" />
<!-- Make the reports directory -->
<mkdir dir="reports" />
<!-- Execute the tests and saves the results to XML -->
<junit fork="yes" printsummary="no" haltonfailure="no">
<batchtest fork="yes" todir="${JunitReport.dir}">
<fileset dir="${APITesting.classes}">
<include name="test/api/**/*Test.class" />
</fileset>
</batchtest>
<formatter type="xml" />
<classpath refid="mastersuite.classpath" />
</junit>
<!-- Compile the resulting XML file into an HTML based report. -->
<junitreport todir="${JunitReport.dir}">
<fileset dir="${JunitReport.dir}">
<include name="TEST-*.xml" />
</fileset>
<report todir="${JunitReport.dir}" />
</junitreport>
</target>
ничего не отправляется на аппаратное обеспечение, что заставляет меня поверить, что моя аннотация @RunWith (com.company.name.RemoteTestCaseRunner.class) не соблюдается в контексте . Есть ли что-то, что я забыл сделать, или, возможно, это нужно сделать дополнительно, чтобы вызвать мою аннотацию @RunWith?
Тесты все еще выполняются, и отчеты создаются, и некоторые тесты, не зависящие от платформы, выполняются и проходят, но не те, которые требуют взаимодействия со службами на целевом оборудовании.
ОБНОВЛЕНИЕ Я определил, что это работает нормально при использовании @RunWith (Suite.class) в паре с @SuiteClasses ({}), но только если я явно приведу тестовый пример. Так что теперь я действительно не уверен, в чем проблема.
ОБНОВЛЕНИЕ Хотя я не нашел в этом ничего хорошего, поведение моих тестов, по-видимому, подразумевает следующее: основываясь на том, как мои тесты отформатированы (они расширяют TestCase), я думаю, что Ant выполняет мои тесты в качестве тестов Junit3. Как указано выше, когда я запускаю набор тестов, отформатированный для Junit4 (используя только аннотации), мои тесты запускаются и выполняются, как предполагалось. Кажется, что когда я прохожу тестовый пример в формате Junit3 напрямую, это когда мои аннотации не учитываются, что подразумевает использование бегуна Junit3.
Мой новый вопрос таков: есть ли способ явно указать муравью использовать бегун Junit 4?