【发布时间】:2017-11-24 14:09:16
【问题描述】:
对于集成测试,我想重用测试结果。依赖项是通过注解定义的。对于要执行的依赖测试,需要获得先前测试的结果。因此,测试需要以固定的顺序执行。否则会跳过依赖于其他测试的测试。为了确保测试以固定的顺序执行,我们定义了一个测试套件。仍然跳过具有依赖关系的测试。这是为什么呢?
ATest.php:
<?php
use PHPUnit\Framework\TestCase;
class ATest extends TestCase
{
public function testA()
{
self::assertTrue(true);
return $this;
}
}
BTest.php:
<?php
use PHPUnit\Framework\TestCase;
class BTest extends TestCase
{
/**
* @depends ATest::testA()
*/
public function testB($a)
{
self::assertTrue(true);
}
}
phpunit.xml:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
verbose="true"
>
<testsuites>
<testsuite name="dependency">
<file>ATest.php</file>
<file>BTest.php</file>
</testsuite>
</testsuites>
</phpunit>
phpunit --testsuite 依赖
Sebastian Bergmann 的 PHPUnit 5.5.7 和 贡献者。
运行时:PHP 7.1.5 和 Xdebug 2.5.4 配置: /phpunit.xml
.S 2 / 2 (100%)
时间:49 毫秒,内存:4.00MB
有 1 个跳过的测试:
1) BTest::testB 这个测试依赖于“ATest::testA()”才能通过。
好的,但是不完整、跳过或有风险的测试!测试:1,断言:1, 跳过:1。
【问题讨论】:
标签: unit-testing phpunit