У меня есть специальный бегун, который отправляет тесты 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 (Suite.class) в паре с @SuiteClasses ({}), но только не, если я явно дам ему тестовый пример. Так что теперь я действительно не уверен, в чем проблема.
ОБНОВЛЕНИЕ Хотя я не нашел ничего надежного в этом, поведение моих тестов, похоже, подразумевает следующее: судя по тому, как мои тесты отформатированы (они расширяют TestCase), я думаю, что Ant выполняет мои тестовые примеры как тестирует Junit3.Как указано выше, когда я запускаю набор тестов, отформатированный для Junit4 (с использованием только аннотаций), мои тесты запускаются и выполняются по назначению. Кажется, что когда я прохожу отформатированный тестовый пример Junit3 напрямую, мои аннотации не соблюдаются, что означает, что используется бегун Junit3.
Мой новый вопрос: есть ли способ явно указать муравью использовать бегун Junit 4?