如何从笔记本或命令行在数据块上运行pytest?

时间:2019-03-12 10:23:13

标签: python unit-testing pytest databricks

我创建了一些类,每个类都以数据框为参数。我已经导入pytest并创建了一些装置和简单的assert方法。

我可以从笔记本中调用pytest.main([。]),它将从rootdir(数据块/驱动程序)执行pytest。

我尝试通过笔记本路径,但显示找不到。

理想情况下,我想从命令行执行此操作。

如何配置rootdir? 我发现很难在spark os和用户工作区之间断开连接。

作为警告,我不想使用unittest,因为通过输出AzureDevOps可以报告的junitxml,我可以在CI plepleine中成功使用pytest。

1 个答案:

答案 0 :(得分:1)

我已经解释了为什么不能在Databricks笔记本上运行pytest(除非您将它们导出,并以常规.py文件的形式将它们上传到dbfs,这不是您想要的)的原因,这篇文章。

但是,我已经能够使用doctest.run_docstring_examples这样的方法在Databricks中运行doctest:

import doctest

def f(x):
    """
    >>> f(1)
    45
    """
    return x + 1

doctest.run_docstring_examples(f, globals())

这将打印出来:

**********************************************************************
File "/local_disk0/tmp/1580942556933-0/PythonShell.py", line 5, in NoName
Failed example:
    f(1)
Expected:
    45
Got:
    2

如果您还想引发异常,请进一步查看:https://menziess.github.io/howto/test/code-in-databricks-notebooks/

相关问题