我想介绍我的单元测试之间的依赖关系。我的第一个测试确定是否应该执行其余测试。
我知道存在带有条件跳过方法skipIf
的@unittest
装饰器。因此,我的解决方案可以像引入一个负责保存有关第一个单元测试状态信息的字段一样简单。有了这些信息,我可以装饰剩余的单元测试,并在第一个单元测试失败时跳过它们。
但是,我觉得这不是最好的方法。如果您考虑更多的依赖关系,那么似乎需要维护整个结构来保留所需的信息。
我一直在寻找内置功能,但找不到更好的功能。
更新
为了尽可能清楚:我正在寻找类似于PHPUnit
中@depends注释的功能。例如,以下代码在firstTest
和secondTest
之间创建依赖关系:
/**
* @depends firstTest
*/
public function secondTest()
{
// test body
}
在上面的示例中,当且仅当firstTest
通过时,才会执行secondTest
。
好吧,这个SO线程处理同样的问题,它所说的是正确的,如果它是一个真正的单元测试并且如果你的代码结构良好,那么你不应该需要(换句话说:不应该是这样)一个测试依赖于另一个测试。
但是,如果您绝对需要它并且有真正可靠的理由,则可以研究长鼻。似乎它可能(通过对测试进行分组)接近您想要的东西。