Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有结果传播的python顺序/增量测试_Python_Unit Testing_Pytest - Fatal编程技术网

带有结果传播的python顺序/增量测试

带有结果传播的python顺序/增量测试,python,unit-testing,pytest,Python,Unit Testing,Pytest,我的问题是: 如何设置测试类、函数甚至完整测试模块之间的依赖关系,以便在其他测试失败时不会执行某些测试模块? 如何将测试结果传递(传播)给后续人员? 我知道这里也有人问过类似的问题,但我仍然认为我遗漏了一些东西 假设我有一个类实现了一个需要训练和评估步骤的算法。因此,让我们考虑3个测试: “测试单元分配” “测试列车” “测试评估” 这些都是顺序的,因此,如果前一个失败了,那么运行一个将是无用的(不可能的)。(如果有帮助,我正在考虑模式识别算法) 他们建议改变对象的内部状态,这样即使“测试列

我的问题是:

  • 如何设置测试类、函数甚至完整测试模块之间的依赖关系,以便在其他测试失败时不会执行某些测试模块?

  • 如何将测试结果传递(传播)给后续人员?

  • 我知道这里也有人问过类似的问题,但我仍然认为我遗漏了一些东西

    假设我有一个类实现了一个需要训练和评估步骤的算法。因此,让我们考虑3个测试:

    • “测试单元分配”
    • “测试列车”
    • “测试评估”
    这些都是顺序的,因此,如果前一个失败了,那么运行一个将是无用的(不可能的)。(如果有帮助,我正在考虑模式识别算法)

    他们建议改变对象的内部状态,这样即使“测试列车”失败,也可以执行“测试评估”。我理解并同意这一点。然而,在某些情况下,这是不可能的/不实际的,例如,如果培训过程实现了一个非常复杂的算法(我是否应该拿出我的计算器,努力完成所有的数学运算!?不,谢谢)

    对于我的问题,我找到的最合理的答案是,它是在pytest上实现的

    解决了

    仅减半:-(

    这只适用于一个测试类,这在我上面的例子中很好。但是我如何在两个不同的测试类之间,甚至在测试模块之间实现相同的依赖性?。我为什么要这样做?想象一个包含多个子模块的大模块,并以金字塔的方式设计。如果基本子模块失败,测试其余的子模块是没有意义的

    我还需要从“test\u eval”中访问“test\u train”的结果。否则,我将不得不再次训练算法,这在许多情况下是计算开销很大的。如何将“test\u train”的结果传递给“test\u eval”?将对象设置为类属性似乎不起作用(测试方法不能修改属性“”,或者它们可以,但更改不会在函数外部具体化。或者我在这里做错了)。然后……我能想到的唯一解决方案是在外部分配对象(全局变量),但这对我来说并不优雅

    我错过了什么


    提前感谢

    几个月前@Joiya550问了一个类似于1.的问题,但仍然没有得到回答。此外,它被设置为的副本,严格来说可能是正确的,但(作为我问题中的链接)被接受的答案只解决了类的问题,并且不适用于一般情况(至少我看不出如何)用于函数或模块。