У меня есть один набор тестов, который помечен так в моей конфигурации PHPUnit.Набор тестов содержит множество различных тестов, а также тесты с интенсивной базой данных в режиме реального времени, выполнение которых занимает много времени.
В частности, выполнение одного из тестов занимает более 2 секунд (см. Ниже).
Я хочу разделить выполнение быстрых тестов из медленных тестов, чтобы я могзапускать медленную, но полную версию тестов, когда у меня есть больше времени, но в целом я хочу запускать быстрые тесты для своих повседневных нужд, тем самым исключая медленные тесты при запуске тестового набора.
Какя могу сделать это?
Для записи моя конфигурация phpunit.xml выглядит так:
<phpunit bootstrap="bootstrap.php">
<testsuite name="Crating">
<directory>../module/Crating/test/</directory>
</testsuite>
</phpunit>
Команда, которую я использую для запуска моего набора тестов, выглядит примерно так:
phpunit -c phpunit.xml --testsuite CratingCalc
Один из файлов в моем каталоге ../module/Crating/test/
- CrateRepositoryTest.php
.Это выглядит так:
class CrateRepositoryTest extends TestCase
{
function testCombine()
{
//mocked up hardcoded data
$fake = new FakeCratingDataModel();
//connection to real live database
$real = new CratingDataModel();
/*
* Tests that verify mocked up data to match live data
* Purpose to have them is to alert me when live database data or schema change
*/
$this->assertEquals($fake->getContentsBySalesOrderNumber(7777), $real->getContentsBySalesOrderNumber(7777));
$this->assertEquals($fake->getContentsByShopJobNumber(17167), $real->getContentsByShopJobNumber(17167));
$this->assertEquals($fake->getNearCrating(20, 20, 20), $real->getNearCrating(20, 20, 20));
$this->assertEquals($fake->getContentsByInquiryNumber(640, 2), $real->getContentsByInquiryNumber(25640, 2));
}
}