trend.py和test_trend.py位于同一个文件夹中。我有一个带有函数find_regres_values的类Trend,它是从实例方法perform_analysis调用的。
trend.py:
class Trend:
def __init__(self, values, trend_type):
self.all_values = values
def permorn_analysis(self, first, trend_type):
#blabla
vals_reg = ["a", "b", "c", "d"]
find_regres_values(vals_reg, first, trend_type)
def find_regres_values(vals_reg, first, trend_type):
#do somethin
pass
在test_trend.py
中from trend import find_regres_values
class ConsecRegions(unittest.TestCase):
def test_find_regres_values_decreas_min_before_max(self):
#initialize some values
output = find_regres_values(vals_reg, first, trend_type)
self.assertEqual(output, result)
它显示了一个错误:
File "test_trend.py", line 2, in <module>
from trend import find_regres_values
ImportError: cannot import name find_regres_values
如何导入一个功能进行测试?
答案 0 :(得分:5)
find_regres_values
是类Trend
的方法,如果您希望find_regres_values
成为自己的函数,则删除缩进
class Trend:
def __init__(self, values, trend_type):
self.all_values = values
def permorn_analysis(self,first,trend_type)
#blabla
vals_reg = some list
find_regres_values(vals_reg, first, trend_type)
def find_regres_values(vals_reg, first, trend_type):
#do something
答案 1 :(得分:0)
您使用的是哪个Python版本?
如果是Python 3.x:
创建空文件__init__.py
要正确导入,请使用以下代码:
from trend import Trend
并编辑方法调用:
from trend import Trend
class ConsecRegions(unittest.TestCase):
def test_find_regres_values_decreas_min_before_max(self):
#initialize some values
output = Trend.find_regres_values(vals_reg, first, trend_type)
self.assertEqual(output, result)
有关信息:
在permorn_analysis方法之后的文件trend.py中插入冒号。