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