Разница между сонаром и локальными тестами - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть разница между результатами модульного теста от 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>

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

...