Mitsuba 3 — это исследовательско-ориентированная система рендеринга, разработанная в EPFL, предлагающая высокопроизводительные кроссплатформенные возможности с интеграцией Python и дифференцируемым рендерингом. В этом документе подробно описаны его функции, установка, использование и кредиты, подчеркивая его универсальность для различных задач рендеринга и исследовательских приложений. Включено предупреждение о текущей нестабильности главной ветки.
Pitest (также известный как PIT) — это современная система мутационного тестирования для Java и JVM.
Прочитайте все об этом на https://pitest.org.
Релизы
1.17.2
1.17.1
1.17.0
1.16.3
1.16.2
1.16.1
1.16.0
Изменение API в #1321 обратно совместимо, но плагины, написанные для версии 1.16.0, могут не работать с более ранними версиями.
1.15.8
По умолчанию фильтрация для #1310 отключена. Чтобы активировать его, добавьте строку фильтра +funmodifyingcollection.
1309 добавляет новое свойство maven parseSurefireArgLine. По умолчанию для этого параметра установлено значение true, но теперь надежный анализ аргументов можно отключить, установив для него значение false.
1.15.7
1305 Покрытие не записано для кода в имени пакета com.sun*
В фильтре, предназначенном для сбора устаревших классов JDK в пакете «com.sun.*», отсутствовал символ ', в результате чего покрытие кода не регистрировалось, если тестируемый код находился в пакете, начинающемся с «sun».
1.15.6
Вызов динамического отслеживания вызовов для статического кода инициализатора будет вновь введен, когда будет реализована дополнительная логика для подавления фильтрации мутаций для кода отложенного выполнения.
1.15.5
1.15.4
Обратите внимание, что пользователям maven, которым ранее приходилось дублировать параметры argline между параметрами jvmArgs и argline Surefire и Pitest, может потребоваться
корректировать их конфигурацию при обновлении. Записи, отправленные в Surefire, теперь будут автоматически добавляться в Pitest.
1.15.3
1.15.2
1267 гарантирует, что ранее скрытые ошибки, обнаруженные плагином JUnit5, теперь будут сообщаться. Это обратно совместимое изменение API. Это не будет иметь никакого эффекта, пока плагин JUnit5 не будет обновлен для использования расширенного API. Обновленный плагин не будет совместим с более ранними версиямиpitest.
1.15.1
1.15.0
В результате взлома API в № 1251, код arcmutate Kotlin
плагин должен быть обновлен до 1.1.0 при обновлении до версииpitest 1.15.0
1.14.4
1246 Установить приоритет предыдущего теста на убийство при использовании файлов истории.
1.14.3
1.14.2
1.14.1
1.14.0
1212 В значительной степени решает проблему синхронизации версииpitest-junit5-plugin с версией junit5 для пользователей maven.
При использовании с плагиномpitest-junit5-plugin версии 1.2.0,pitest теперь автоматически выбирает версию junit-platform-launcher, которая
совместим с версией junit5, используемой тестируемой системой.
Проблемы остаются для пользователей gradle, которые все еще могут столкнуться с совместимостью API при использовании версии 1.2.0 плагинаpitest-junit5. Однако теперь они могут
можно решить, вручную добавив правильную версию junit-platform-launcher в путь к классам.
Есть надежда, что в будущей версии плагинаpitest gradle будет реализовано исправление, аналогичное решениюpitest-maven.
1.13.2
1.13.1
1.13.0
1.12.0
1.11.7
1.11.6
1.11.5
1.11.4
1.11.3
1.11.2
Статистика покрытия строк, отображаемая на консоли, включала строки кода для всего проекта, даже если были применены фильтры. Этот
привело к резко низким показателям охвата.
1.11.1
1.11.0
Обратите внимание, что #1150 включает критические изменения интерфейса, которые могут потребовать обновления сторонних плагинов.
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
В результате #1067 важно, чтобы мутации создавались только для одного класса для каждой JVM. Поэтому точка расширения MutationGrouper была удалена, поскольку это позволяло нарушить это ограничение. Любые сторонние плагины, использующие это расширение, больше не поддерживаются.
Релизы также включают в себя многочисленные изменения во внутренних структурах данных. Любые сторонние плагины, использующие эти структуры, возможно, потребуется обновить.
1116 обеспечивает грубый способ исключения автоматически сгенерированного кода, не обнаруженного другими фильтрами PEST. По умолчанию он отключен, так как в некоторых ситуациях он может исключить код, который допустим для мутации, но его можно включить, добавив строку функции +nofirstline.
1.9.11
1.9.10
1.9.9
1.9.8
Добавляет поддержку таких языков, как Kotlin, где исходные файлы могут находиться вне структуры каталогов, соответствующей их пакету. Обратите внимание: если одно и то же имя файла встречается более чем в одном месте, pitest не может гарантировать, что будет найден правильный файл.
1.9.7
1.9.6
Обратите внимание, что #1085 меняет поведение по умолчанию, поэтому отчеты больше не записываются в каталоги с отметкой времени по умолчанию. Если вам требуется такое поведение, вам нужно будет явно включить его.
1.9.5
1078 — это критическое изменение интерфейса, но оно включено в точечный выпуск, поскольку считается, что в нем есть
на данный момент внешних клиентов нет.
1.9.4
1.9.3
1054 Перемещает поддержку автоматического добавления headless=true (чтобы предотвратить кражу фокуса клавиатуры на Mac) в функцию.
Он включен по умолчанию, но его можно отключить, добавив -MACOS_FOCUS в строку функций.
1055 добавляет возможность угадать подходящее количество потоков для текущего компьютера, добавив +auto_threads
строка функций. Эта опция отключена по умолчанию и предназначена для локального использования. Это не рекомендуется
для использования на CI-сервере.
1.9.2
1.9.1
1.9.0
В результате #1040 любые внешние плагины для тестирования PEST (например, JUnit 5, TestNG, arcmutate Accelerator) должны быть
обновлен до совместимой версии (1.0.0) при обновлении.
Файлы истории из более ранних выпусков несовместимы и должны быть удалены при обновлении.
1.8.1
1.8.0
1.7.6
В результате #1015 плагин TestNG теперь необходимо настроить при использовании pitest в базах кода, протестированных TestNG. В более ранних версиях поддержка включалась автоматически.
1.7.5
В результате #993 любой, желающий использовать операторов RV, ориентированных на исследования, должен настроить плагинpitest-rv, однако эти мутаторы не рекомендуются для общего использования.
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
Из-за внутренних изменений некоторые сторонние плагины могут быть несовместимы с этой версией.
Перед обновлением следует удалить все файлы истории.
Имена мутаторов условия удаления немного изменились в результате #930 и
возможно, потребуется обновить сценарии сборки, если они явно активированы.
1.6.9
1.6.8
1.6.7
В результате #900 параметр testPlugin больше не существует, но pitest продолжит принимать его без ошибок в этой версии. Pitest будет использовать любые механизмы тестирования, предоставленные в пути к классам, возвращаясь к встроенной поддержке JUnit4, когда другие механизмы тестирования не могут обработать этот класс.
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.5.2
1.5.1
1.5.0
1.4.11
1.4.10
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
Обратите внимание, что при обновлении файлы истории, созданные предыдущими выпусками, несовместимы с версией 1.3.2 и выше.
1.3.1
1.3.0
428 изменяет существующее поведение фильтра исключенных классов. Ранее это исключало возможность изменения классов и запуска их в качестве тестов, что могло потребовать внесения изменений для некоторых людей при обновлении.
В результате 429 тестов TestNG больше не будут автоматически обнаруживаться — новый параметр testPlugin должен быть явно установлен на «testng».
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
(Примечание № 347 не обнаруживает javax.annotaion.Generated, поскольку оно имеет только сохранение исходного кода.)
1.2.0
Примечание. Начиная с этого выпуска плагин maven будет автоматически определять, какие классы следует изменять, вместо того, чтобы предполагать, что имена пакетов соответствуют идентификатору группы.
1.1.11
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
Обратите внимание, что этот выпуск содержит известную проблему (№ 231). Пожалуйста, обновите.
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
Обратите внимание, что в этой версии все сохраненные файлы истории или результаты сонара становятся недействительными.
1.0.0
0,33
0,32
Обратите внимание, что в этом выпуске изменена настройка проектов на основе Ant. Подробную информацию об использовании см. в разделе Настройка ant.
0,31
В этом выпуске также изменен ряд деталей внутренней реализации, некоторые из которых могут представлять интерес/важность для тех, кто поддерживает инструменты,
интегрироваться с PIT.
Мутации теперь имеют внутреннюю область действия, как описано в https://groups.google.com/forum/#!topic/pitusers/E0-3QZuMYjE.
Был введен новый класс (org.pitest.mutationtest.tooling.EntryPoint), который устраняет часть дублирования, существовавшего в различных способах запуска анализа мутаций.
0,30
0,29
0,28
Известная проблема. Исправление № 33 может не решить проблему для пользователей maven 2.
Обнаружение кода Groovy еще не тестировалось с помощью Groovy 2, который может генерировать существенно отличающиеся
байт-код для более ранних версий.
0,27
Пользователям при обновлении может потребоваться изменить свою сборку из-за удаления параметра inScopeClasses.
0,26
Известная проблема. Новый мутатор переменной-члена может вызывать ошибки синхронизации. Мутатор - это
однако по умолчанию отключено, и возникающие ошибки корректно обрабатываются PIT.
0,25
0,24
0,23
0,22
0,21
0,20
0,19
0,18
Проблемы
Прежде чем создавать проблемы или работать над ними, ознакомьтесь с нашими правилами управления проблемами.
Кредиты
Pitest — это в основном моя работа, но в него внесли вклад и многие другие.
Важные вклады, не видимые здесь, поскольку они были сделаны до того, как этот код был перенесен на github, включают:
Хотя PIT не включает в себя какой-либо код из проекта Jumble (http://jumble.sourceforge.net/), база кода Jumble использовалась в качестве руководства при разработке некоторых аспектов PIT.