You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Databricks中使用Nutter执行单元测试返回None的问题排查

在Databricks中使用Nutter执行单元测试返回None的问题排查

问题描述

我尝试在Databricks中使用Nutter执行单元测试,但始终返回None。

notebook1代码:

def add_nums(a, b):
    return a + b

notebook2(测试代码)

首先安装依赖并导入模块:

%pip install nutter 
from runtime.nutterfixture import NutterFixture, tag

导入notebook1:

%run /notebook1/

编写测试逻辑:

print(add_nums(1, 3)) # 返回4,功能正常。

class gcTestClass(NutterFixture):
    def test_add(self):
        assert (add_nums(1, 3) == 4)

result = gcTestClass().execute_tests()
print(result.to_string())

输出结果:

Notebook: N/A - Lifecycle State: N/A, Result: N/A

Run Page URL: N/A

No test cases were returned.
Notebook output: None

问题原因及解决方法

核心问题是Nutter无法识别你的测试方法,它要求测试方法必须通过@tag()装饰器标记,或者在类中显式指定要运行的测试方法列表。

方案一:添加@tag()装饰器

修改测试类代码,给测试方法加上装饰器:

print(add_nums(1, 3)) # 返回4,功能正常。

class gcTestClass(NutterFixture):
    @tag()
    def test_add(self):
        assert (add_nums(1, 3) == 4)

result = gcTestClass().execute_tests()
print(result.to_string())

方案二:显式指定测试方法列表

在类的初始化方法中声明要运行的测试方法:

print(add_nums(1, 3)) # 返回4,功能正常。

class gcTestClass(NutterFixture):
    def __init__(self):
        super().__init__()
        self.tests = ["test_add"]

    def test_add(self):
        assert (add_nums(1, 3) == 4)

result = gcTestClass().execute_tests()
print(result.to_string())

补充说明

  • Nutter通过@tag()装饰器识别测试用例,未标记的方法不会被纳入执行范围。
  • 若使用旧版本Nutter可能存在兼容性问题,可执行%pip install --upgrade nutter更新依赖。

内容的提问来源于stack exchange,提问作者Enrique Benito Casado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:35:19