Mitsuba 3 es un sistema de renderizado orientado a la investigación desarrollado en EPFL, que ofrece capacidades multiplataforma de alto rendimiento con integración de Python y renderizado diferenciable. Este documento detalla sus características, instalación, uso y créditos, destacando su versatilidad para diversas tareas de renderizado y aplicaciones de investigación. Se incluye una advertencia sobre la inestabilidad actual de la rama maestra.
Pitest (también conocido como PIT) es un sistema de prueba de mutaciones de última generación para Java y JVM.
Lea todo al respecto en https://pitest.org
Lanzamientos
1.17.2
1.17.1
1.17.0
1.16.3
1.16.2
1.16.1
1.16.0
El cambio de API en el n.° 1321 es compatible con versiones anteriores, pero es posible que los complementos escritos en 1.16.0 no funcionen con versiones anteriores.
1.15.8
El filtrado para #1310 está desactivado de forma predeterminada. Para activarlo agregue la cadena de filtro +funmodifiablecollection.
1309 agrega una nueva propiedad maven parseSurefireArgLine. Esto está configurado en verdadero de forma predeterminada, pero el análisis seguro de argline ahora se puede deshabilitar configurándolo en falso.
1.15.7
1305 Cobertura no registrada para el código en el nombre del paquete com.sun*
A un filtro destinado a recoger clases JDK heredadas en el paquete "com.sun.*" le faltaba un ', lo que provocaba que no se registrara cobertura de código si el código bajo prueba estaba en un paquete que comenzaba con "sun".
1.15.6
La invocación de seguimiento dinámico de llamadas para el código inicializador estático se reintroducirá cuando se haya implementado una lógica adicional para suprimir el filtrado de mutaciones para el código de ejecución retrasada.
1.15.5
1.15.4
Tenga en cuenta que los usuarios maven que previamente han necesitado duplicar los parámetros argline entre los parámetros jvmArgs y argline de surefire y pitest pueden necesitar
para ajustar su configuración al actualizar. Las entradas enviadas a surefire ahora se agregarán automáticamente a pitest.
1.15.3
1.15.2
1267 garantizará que ahora se informen los errores previamente ocultos encontrados por el complemento JUnit5. Este es un cambio de API compatible con versiones anteriores. No tendrá ningún efecto hasta que se actualice el complemento JUnit5 para utilizar la API ampliada. El complemento actualizado no será compatible con versiones anteriores de pitest.
1.15.1
1.15.0
Como resultado de los cambios importantes en la API en el n.° 1251, el arcmutate kotlin
El complemento debe actualizarse a 1.1.0 al actualizar a pitest 1.15.0.
1.14.4
1246 Priorizar la prueba de eliminación previa al utilizar archivos históricos
1.14.3
1.14.2
1.14.1
1.14.0
1212 Resuelve en gran medida el problema de mantener sincronizada la versión del complemento pitest-junit5 con la versión junit5 para usuarios de maven.
Cuando se usa con 1.2.0 del complemento pitest-junit5, pitest ahora seleccionará automáticamente una versión de junit-platform-launcher que
es compatible con la versión de junit5 utilizada por el sistema bajo prueba.
Siguen existiendo problemas para los usuarios de Gradle que aún pueden encontrar compatibilidades de API cuando usan la versión 1.2.0 del complemento pitest-junit5. Sin embargo, estos pueden ahora
resolverse agregando manualmente la versión correcta de junit-platform-launcher al classpath.
Se espera que una versión futura del complemento pitest gradle implemente una solución similar a la solución 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
Las estadísticas de cobertura de línea informadas en la consola incluían líneas de código para todo el proyecto, incluso cuando se aplicaron filtros. Este
resultó en puntuaciones de cobertura dramáticamente bajas.
1.11.1
1.11.0
Tenga en cuenta que el número 1150 incluye cambios importantes en la interfaz que pueden requerir actualizaciones de complementos de terceros.
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
Como resultado del n.º 1067, es importante que las mutaciones solo se creen para una única clase para cada JVM. Por lo tanto, se eliminó el punto de extensión MutationGrouper, ya que permitía violar esta restricción. Ya no se admiten complementos de terceros que utilicen esta extensión.
Las versiones también incluyen múltiples cambios en las estructuras de datos internas. Es posible que sea necesario actualizar cualquier complemento de terceros que dependa de estas estructuras.
1116 proporciona una forma sencilla de excluir el código generado automáticamente que no es detectado por los otros filtros de pitest. Está deshabilitado de forma predeterminada, ya que puede excluir código que es válido para mutación en algunas situaciones, pero se puede habilitar agregando la cadena de característica +nofirstline.
1.9.11
1.9.10
1.9.9
1.9.8
Agrega soporte para lenguajes como Kotlin, donde los archivos fuente pueden no estar dentro de una estructura de directorio que coincida con su paquete. Tenga en cuenta que si el mismo nombre de archivo aparece en más de una ubicación, pitest no puede garantizar la resolución del archivo correcto.
1.9.7
1.9.6
Tenga en cuenta que el número 1085 cambia el comportamiento predeterminado, por lo que los informes ya no se escriben en directorios con marca de tiempo de forma predeterminada. Si necesita este comportamiento, deberá habilitarlo explícitamente.
1.9.5
1078 es un cambio importante en la interfaz, pero se incluye en una versión puntual ya que se cree que hay
Actualmente no hay clientes externos.
1.9.4
1.9.3
1054 Mueve la compatibilidad con la adición automática de headless=true (para evitar que se robe el foco del teclado en Mac) a una función.
Está habilitado de forma predeterminada, pero se puede deshabilitar agregando -MACOS_FOCUS a la cadena de características.
1055 agrega la opción de adivinar el número apropiado de subprocesos para la máquina actual agregando +auto_threads
la cadena de características. Esta opción está deshabilitada de forma predeterminada y diseñada para uso local. no es recomendable
para su uso en un servidor CI.
1.9.2
1.9.1
1.9.0
Como resultado del n.º 1040, cualquier complemento de prueba externo (por ejemplo, JUnit 5, TestNG, acelerador arcmutate) debe ser
actualizado a una versión compatible (1.0.0) al actualizar.
Los archivos de historial de versiones anteriores son incompatibles y deben eliminarse al actualizar.
1.8.1
1.8.0
1.7.6
Como resultado del número 1015, el complemento TestNG ahora debe configurarse cuando se usa pitest en bases de código probadas por TestNG. En versiones anteriores, la compatibilidad se incluía automáticamente.
1.7.5
Como resultado del n.º 993, cualquiera que desee utilizar los operadores de vehículos recreativos orientados a la investigación debe configurar el complemento pitest-rv; sin embargo, estos mutadores no se recomiendan para uso general.
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
Debido a cambios internos, algunos complementos de terceros pueden ser incompatibles con esta versión.
Todos los archivos históricos deben eliminarse antes de actualizar.
Los nombres de los mutadores de eliminación de condicionales han cambiado ligeramente como resultado de #930 y
Es posible que sea necesario actualizarlo en los scripts de compilación si se activa explícitamente.
1.6.9
1.6.8
1.6.7
Como resultado del número 900, el parámetro testPlugin ya no está disponible, pero pitest continuará aceptándolo sin errores para esta versión. Pitest utilizará cualquier motor de prueba proporcionado en el classpath, recurriendo al soporte integrado JUnit4 cuando otros motores de prueba no puedan manejar la clase.
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
Tenga en cuenta al actualizar que los archivos de historial generados por versiones anteriores no son compatibles con la versión 1.3.2 y superior.
1.3.1
1.3.0
428 cambia el comportamiento existente del filtro Clases excluidas. Anteriormente, esto excluía que las clases fueran mutadas y ejecutadas como pruebas, lo que puede requerir cambios para algunas personas al actualizar.
Como resultado de 429, las pruebas TestNG ya no se detectarán automáticamente; el nuevo parámetro testPlugin debe establecerse explícitamente en "testng".
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
(La nota n.° 347 no detectará javax.annotaion.Generated ya que solo tiene retención de fuente).
1.2.0
Nota: a partir de esta versión, el complemento maven determinará automáticamente qué clases mutar en lugar de asumir que los nombres de los paquetes coinciden con la identificación del grupo.
1.1.11
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
Tenga en cuenta que esta versión contiene un problema conocido (n.º 231). Por favor actualice.
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
Tenga en cuenta que esta versión invalida cualquier archivo histórico almacenado o resultado de sonda.
1.0.0
0,33
0,32
Tenga en cuenta que la configuración para proyectos basados en Ant cambia en esta versión. Consulte configuración de hormigas para obtener detalles sobre el uso.
0,31
Esta versión también cambia una serie de detalles de implementación interna, algunos de los cuales pueden ser de interés/importancia para quienes mantienen herramientas que
integrarse con PIT.
Las mutaciones ahora tienen un alcance interno como se describe en https://groups.google.com/forum/#!topic/pitusers/E0-3QZuMYjE
Se ha introducido una nueva clase (org.pitest.mutationtest.tooling.EntryPoint) que elimina algunas de las duplicaciones que existían en las distintas formas de iniciar el análisis de mutaciones.
0,30
0,29
0,28
Problema conocido: la solución #33 puede no resolver el problema para los usuarios de Maven 2.
La detección de código Groovy aún no se ha probado con Groovy 2, lo que puede generar cambios sustancialmente diferentes.
código de bytes a versiones anteriores.
0,27
Es posible que los usuarios de actualización deban modificar su compilación debido a la eliminación del parámetro inScopeClasses
0,26
Problema conocido: el nuevo mutador de variable miembro puede provocar errores en errores sincronizados. El mutador es
sin embargo, está deshabilitado de forma predeterminada y PIT maneja correctamente los errores generados.
0,25
0,24
0,23
0,22
0,21
0,20
0,19
0,18
Asuntos
Consulte nuestras reglas de gestión de problemas antes de crear o trabajar en problemas.
Créditos
Pitest es principalmente obra mía, pero se ha beneficiado de las contribuciones de muchos otros.
Las contribuciones notables que no son visibles aquí ya que se realizaron antes de que este código se migrara a github incluyen
Aunque PIT no incorpora ningún código del proyecto Jumble (http://jumble.sourceforge.net/), el código base de Jumble se utilizó como guía al desarrollar algunos aspectos de PIT.