У меня есть разница между результатами модульного теста от Sonar (на Gitlab) и Local execute.
Пример этой проблемы:
У меня есть класс:
@MappedSuperclass
@Context(Database.class)
public abstract class DatabaseEntity<I> extends AbstractEntity<I> {
@DiffIgnore
@Column(
name = "I_DATABASES",
updatable = false
)
private Long database;
public DatabaseEntity() {
}
public Long getDatabase() {
return this.database;
}
public void setDatabase(Long database) {
this.database = database;
}
}
который расширен классом ниже
public class ConfigIntegracaoContabil extends DatabaseEntity<Long> {
@Id
@Column(name = "ID", precision = 19)
private Long id;
@Column(name = "ENVIAR_CONTRIBUINTES", length = 1)
private SimNao enviarContribuintes;
...
Мой модульный тест:
@Test
public void structTest() {
ConfigIntegracaoContabil entity = new ConfigIntegracaoContabil();
final Field[] fields = entity.getClass().getDeclaredFields();
final Field[] fieldsSuperClass = entity.getClass().getSuperclass().getDeclaredFields();
assertEquals(17, fields.length + fieldsSuperClass.length);
}
Локально этот тест пройден. Но при запуске на Sonar этот тест не прошел, и результат:
ConfigIntegracaoContabilTest.structTest:35 expected:<17> but was:<18>
Я не могу понять эту разницу. Это было из-за того, что сонар делал это во время выполнения? Кто-нибудь решил что-то подобное?