Rozdělení testů na rychlé/pomalé, resp. jednotkové/integrační?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Milanov
- Člen | 51
Ahoj. Objevily se nám nějaké testy, které např. komunikují s cizím serverem a ověřují data, která k nám chodí. Je správné, mít takové testy mezi jednotkovými? Ono to netestuje ani tak naší jednotku, jako spíš integritu dat. S tím souvisí, že test je malinko pomalejší a přemýšleli jsme, že bychom ho nějak prioritizovali – teda označili jako pomalý – a spouštěli ho jen na vyžádání a ne před každým commitem.
Nebo je lepší podobné testy mít vyčleněné v extra adresáři a spouštět jen na CI serveru?
- Milo
- Nette Core | 1283
Selektivní spouštění testů se dá s Testerem vyřešit několika způsoby:
- Testy se rozdělí do adresářů a spouští se jen vybrané adresáře. Hodí se pro testování namespaces.
- Pro vybrané testy se zvolí jiná přípona a spustí se jen na vyžádání. To je trochu extrém.
- Tester zachovává proměnné prostředí. Nastaví se proměnná prostředí a podle ní se řídí spouštění. Například:
TESTS_RUNLEVEL=10 vendor/bin/tester tests
<?php
if ((int) getenv('TESTS_RUNLEVEL') < 5) {
Tester\Environment::skip("Required runlevel 5.");
}
Proměnnou prostředí lze nastavit také ze setup skriptu
vendor/bin/tester --setup setup.php
.