Мои тесты проваливаются на Дженкинсе, но проходят локально.Использование Jmockit @Injectable для вставки полей в экземпляр @Tested для тестируемого класса - PullRequest
0 голосов
/ 28 января 2019

У меня тестируется дочерний класс BoyTest.java.BoyTest расширяет тестовый класс под названием GirlTest.Я ввел список, используя @Injectable(Jmockit) в GirlTest.

Теперь, когда я пытаюсь внедрить список из GirlTest в @Tested экземпляр BoyTest.Я вижу, что мой тест не пройден, так как список не введен.Тест не пройден, так как ожидаемый - пустой список, а фактический - список, содержащий JSON.Используемая версия Jmockit: v1.41 и версия JDK 1.8.0_181

public class GirlTest {
@Tested
private Girl girl;

@Injectable
private List<someType> list;
}

public class BoyTest extends GirlTest {
@Tested
private Boy boy;


@Test
public void someTest(){
lis.add(json)
assertThat(boy.getJsons()).isEqualTo(Arrays.asList(json));
}
}

Результат теста: ожидающий элемент List добавляется в список до запуска оператора утверждения и ожидает прохождения теста Actual, сдача теста в местном, ожидание сдачи теста на Jenkins

1 Ответ

0 голосов
/ 04 июля 2019

возможно, вы не настроили maven-surefire-plugin, вы можете попробовать добавить эти коды следующим образом в ваш файл pom.xml

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-surefire-plugin</artifactId>
   <version>2.4.3</version>
   <configuration>
      <argLine>-javaagent:${settings.localRepository}/mockit/jmockit/0.998/jmockit-0.998.jar</argLine>
      <useSystemClassLoader>true</useSystemClassLoader>
    </configuration>
</plugin>

убедитесь, что эта линия настроена.

<argLine>-javaagent:${settings.localRepository}/mockit/jmockit/0.998/jmockit-0.998.jar</argLine>

тогда вы можете использовать jmockit на jenkins

...