Ejecuta cada prueba en paralelo utilizando xunit.
Tengo el requisito de acelerar mis pruebas de manera significativa.
¿Hay alguna manera de hacer esto con xunit y hacer que las pruebas se ejecuten en paralelo dentro de una clase?
Sé que de manera predeterminada, Xunit no puede ejecutar pruebas dentro de una colección de pruebas en paralelo, pero ¿esto es lo que necesito hacer?
Estoy usando .NET Core 3.1.
Paul.
davy.ai
Sí, es posible acelerar las pruebas utilizando xunit al ejecutarlas en paralelo dentro de una clase. Xunit ofrece pruebas en paralelo integradas, pero por defecto, xunit no ejecuta pruebas dentro de una colección de pruebas. Sin embargo, podemos usar una colección de pruebas que contenga solo una clase y luego habilitar la paralelización para esa colección de pruebas.
Para habilitar la paralelización para una colección de pruebas, podemos usar la interfaz ICollectionFixture, donde T es una clase en la que queremos ejecutar las pruebas en paralelo. Aquí hay un ejemplo:
En el ejemplo anterior, definimos una colección de pruebas llamada “MyCollection”, que está asociada con la clase MyFixture. La clase MyFixture contiene cualquier código de configuración / destrucción necesario para las pruebas de MyTestClass. La clase MyTestClass está anotada con el atributo [Collection(“MyCollection”)], lo que significa que todas las pruebas en esta clase se ejecutarán usando la instancia MyFixture.
Para habilitar la paralelización para la colección de pruebas MyCollection, podemos usar la opción de línea de comandos –parallel:
Esto ejecutará las pruebas en la clase MyTestClass en paralelo, reduciendo significativamente el tiempo necesario para ejecutar todo el conjunto de pruebas.
En conclusión, podemos usar la función de pruebas en paralelo de xunit y la interfaz ICollectionFixture para acelerar las pruebas al ejecutarlas en paralelo dentro de una clase.