只有在另一个通过时才运行python unittest

时间:2018-04-02 17:57:52

标签: python unit-testing camera python-unittest

我是单元测试的新手,我正在写一个类来模拟针孔相机的行为。

我使用unittest模块在Python中进行了几次单元测试,而我的Camera类有一个lookAt方法,它可以看到某个点,即它旋转相机框架使其指向目标。 我还有一种将3D点投射到相机图片中的方法。

我的场景是我首先测试lookAt方法,然后如果测试通过,我使用lookAt方法让我的相机看一个立方体,然后将该立方体投影到我的相机的图片上(投影是在这里测试。)

单元测试模块中是否有可能让我在另一个测试中运行测试?或者我应该手工查看矩阵然后单独测试投影(我认为这将是最佳实践)?

1 个答案:

答案 0 :(得分:1)

根据第一次测试中设置的条件,查看skipIf decorator并将其应用于您的相关测试。

@unittest.skipIf(condition, reason)

例如(来自上面的链接):

    @unittest.skipIf(mylib.__version__ < (1, 3),
                 "not supported in this library version")

还有subTest(),但是文档描述了subTest的目的是&#34;当你的一些测试只有一些[原文如此]非常小的差异时。&#34;