gcovr: сравнить запрос на загрузку к master [duplicate]

Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.

например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.

public Class myClass
{
   public int prop1 {get;set;}
}

Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref.prop1 = 1;  //This line throws error
     }
}

выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.

Чтобы исправить это, вам нужно создать экземпляр (присвоить объект ссылке на этот класс).

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref = new myClass();
        ref.prop1 = 1;  
     }
}
4
задан Michael Brewer-Davis 2 September 2011 в 16:51
поделиться

4 ответа

Недавно я сделал именно это, используя JaCoCo и структуру ConQAT для анализа кода. Этот подход выглядит следующим образом:

  1. Загрузите исходный код из базовой версии и головной версии (и, возможно, промежуточных, если вы также проверили промежуточные тесты)
  2. Сравните метод истории программы с помощью метода, чтобы определить, где произошли изменения
  3. Аннотировать информацию о охвате каждой проверенной версии
  4. Поиск методов, которые не были покрыты с момента последнего изменения

Существует также сообщение в блоге , содержащее более подробное описание, включая визуализацию и более сложные темы, такие как определение рефакторинга, только для выявления изменений, которые стоит проверить.

0
ответ дан agoeb 26 August 2018 в 09:42
поделиться

Используйте pycobertura . Это инструмент командной строки для предотвращения регрессии покрытия кода, отличаясь двумя отчетами о покрытии. Это говорит о том, что ваш новый код лучше или хуже, чем предыдущая версия, с охватом.

$ pycobertura diff ./master/coverage.xml ./myfeature/coverage.xml

Это язык не агностик, поскольку он просто опирается на отчет Cobertura (XML-файл), сгенерированный вашим тестированием /

Pycobertura также может генерировать HTML-отчеты, которые прекрасно вписываются в инструменты CI / CD, такие как Jenkins.

enter image description here [/g2]

https://github.com/aconrad/pycobertura

2
ответ дан Alex Conrad 26 August 2018 в 09:42
поделиться

Взгляните на Sonar, действительно хороший инструмент для анализа всего качества и охвата приложений.

0
ответ дан Ruslan Dzhabbarov 26 August 2018 в 09:42
поделиться

Инструменты непрерывной интеграции, такие как Jenkins, позволяют сохранить историю охвата тестированием и показать график, который включает тренд покрытия по сравнению с предыдущими сборками. Пример: Плагин Cobertura Jenkins

1
ответ дан Sean Patrick Floyd 26 August 2018 в 09:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: