如何通过多处理模块创建的工作进程在python中组合动态生成的测试套件

时间:2019-10-14 17:59:37

标签: python multiprocessing

我正在使用Python3的多处理程序运行一堆工作进程。在每个工作进程中,我都在创建一个动态测试用例(unittest.testcase的子类)。在该类下,我正在创建一组名称为“ test_”的动态方法。因此,每个工作进程都会产生一个test_suite。我想合并所有工作进程中的测试套件,并使用从我的main的runner实例开始调用它,以便可以生成单个单元测试用例HTML报告。 我正在尝试找出最简单的方法。我尝试使用pickle将每个test_suite转换为字节,并使用管理器queque将其写入单独的文件甚至共享文件中,但这没有用,因为它一直给出错误“反序列化期间无法获取属性XXXXX。我认为因为那些动态生成的类在父进程中不再可用。谢谢您的建议

这里是生成动态类和方法的容器类和辅助函数。

library(dplyr)
library(data.table)
iris %>% 
     mutate( flag = as.integer(Species %like% "setosa") )

1 个答案:

答案 0 :(得分:0)

我意识到这是不可能的,因为动态对象(测试方法)在父流程中不再可用,因此取消选择将不起作用,因此我不得不更改设计以捕获运行后在父流程中创建测试方法和类来自子进程的时间对象