我有一个python文件( myfile.py
)我通常通过运行以下命令来运行
spark2-submit --master yarn --deploy-mode client myfile.py arg1 arg2
我需要得到这个文件的报道,我一直在尝试
coverage run myfile.py arg1 arg2
coverage xml -o coverage-myfile.xml
这可以很好地工作,并为我提供了覆盖率xml,但是行不能正常工作,因为它需要使用 spark-submit
,不简单 python
. 因此,我的保险范围比我想要的要低一点。
除了使用spark,还有其他方法吗?
1条答案
按热度按时间uxh89sit1#
在一个测试环境中(所以它不是完全一对一的,但应该是类似的),我通过实现一个会话范围的fixture来实现这一点,该fixture构建一个
SparkSession
. 比如:然后,对于我需要测试的所有函数(以及覆盖范围),使用
spark
固定装置。在您的情况下,您可能需要一个特定于测试/覆盖范围的模块调用中的相关启动函数
myfile.py
用一个SparkSession
对象,并将其传递给您的代码库。对于这些函数和任何子模块,您的覆盖范围仍然是准确的。然后可以将其作为常规python模块运行。