[Feature] Per-unit and per-class fixture configuration - PR welcome?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comienza en src/Codeception/Module/Yii2.php e inspecciona loadFixtures(); después revisa los ejemplos enlazados y la implementación propuesta. Confirma la API que desea el proyecto para los atributos de clase y de prueba, así como su compatibilidad con fixturesMethod; el trabajo estará terminado cuando los valores predeterminados de los fixtures, las sobrescrituras y el comportamiento de desactivación estén acordados y cubiertos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Note: I may not be aware of all configuration options or available functionality, so please let me know if I'm missing something.
AFIK, there is the option to configure fixtures in the test configuration, as well as in the configured fixturesMethod (_fixtures).
In our project, humhub/humhub, we use the fixturesMethod to adjust the configured fixtures from the configuration based on the test case's need. Mainly to speed up tests that do not require db data or just a subset of it.
In some situations, however, it seems to make sense to collect several tests in one case, but only some of them do actually need the fixtures, or some need a different set.
Now we had the idea to use attributes to allow that fixtures to be configured: see examples and current suggested implementation (open for improvement).
The question of this issue is if there is interest that we would incorporate this feature into this project here, potentially in the loadFixtures() method. The logic could be
- If the
fixturesMethodis implemented, just use its result - Otherwise, check for class and test attributes and use their result, if present
If the new functionality is encapsulated in a public method (e.g. getTestFixtures()) and we would pass the yii2 module instance as an argument to the fixturesMethod for easy access, the fixturesMethod could still use that configuration and customize as required. By this, there would be full backwards-compatibility while supporting fixture configuration without the need to implement the fixturesMethod.
The annotations generally allow the following:
- define a default set of fixtures
- use a configuration array to reduce or extend the default set
- on test level, the class level can be overridden, also falling back to the original configuration
- a special class
FixturesNonewould simply disable any fixtures for the current test.
Thank you for considering this. Any feedback welcome.
Please note, the current code in the aforementioned PR is not designed to meet this project's guidelines. Happy to adapt accordingly if you'd be interested in considering an implementation in your code base.
- Lenguaje dominante
- PHP
- Estrellas
- 19
- Forks
- 42
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Codeception/module-yii2
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Codeception/module-yii2#145 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Codeception/module-yii2#144 · 1 comentario · 1 reacción ·
-
MongoDB supportAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Codeception/module-yii2#142 · 4 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 38/100
Codeception/module-yii2#141 · 1 comentario ·
-
Unable to load yii\elasticsearch\ActiveRecord-based fixturesQuizá libre de nuevo @Mikk36 la tomó hace 385 días y no hay ningún pull request abierto. Abierto
Codeception/module-yii2#134 · 4 comentarios · 1 asignado ·
Todos los issues de Codeception/module-yii2
Issues similares
-
HttpRequestTrait fatals on WordPress 7.2: $blocked_http_requests clashes with WP_UnitTestCase_BaseAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
pluginsGLPI/addressing#127 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
WordPress/create-block-theme#886 · 1 reacción ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
humanmade/hm-popup-block#18 ·