首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nose测试顺序动作流水线

使用nose测试顺序动作流水线
EN

Stack Overflow用户
提问于 2014-03-17 23:00:39
回答 1查看 115关注 0票数 0

用鼻子测试顺序动作流水线的最佳方式是什么?

例如,如下所示的管道:

代码语言:javascript
复制
res1 = fun1(other_params1)
res2 = fun2(res1, other_params2)
res3 = fun3(res2, other_params3)

一开始,我认为应该一个接一个地执行类中的所有测试,并将中间结果存储在类成员中。然而,这种方法似乎不起作用,因为中间测试的结果并没有真正保存下来,当我试图在下一次测试中访问它们(通过类成员)时,该测试总是会失败。

我可以挑选所有中间结果,并在下一次测试中重新加载它们。但是有没有更好的方法呢?

EN

回答 1

Stack Overflow用户

发布于 2014-03-18 22:46:20

为什么你不能这么做呢?

代码语言:javascript
复制
def test_func():
   res1 = fun1(other_params1)
   assert(res1...)
   res2 = fun2(res1, other_params2)
   assert(res2.….)
   res3 = fun3(res2, other_params3)
   assert(res3...)

如果您有一个包含多个other_params*的复杂结构,则可以动态自动生成测试:

代码语言:javascript
复制
def fun1(a1):
    return a1

def fun2(a1, a2):
    return a1

def fun3(a1, a2):
    return a2

def _seq_func(p1, r1, p2, r2, p3, r3):
   actual_r1 = fun1(p1)
   assert r1==actual_r1
   actual_r2 = fun2(r1, p2)
   assert r2==actual_r2
   actual_r3 = fun3(r2, p3)
   assert r3==actual_r3

def test_all():
    test_list = [[1, 1, 1, 1, 1, 1],
                 [2, 2, 2, 2, 2, 2],
                 [1, 2, 1, 1, 1, 1],]
    for test_vec in test_list:
        yield _seq_func, test_vec[0], test_vec[1], test_vec[2], \
            test_vec[3], test_vec[4], test_vec[5]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22457751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档