【发布时间】:2018-05-14 03:46:49
【问题描述】:
我已经编程了一段时间,但从未真正深入了解它。现在我在一个研究中心工作,我需要使我的东西连贯和兼容。我的同事向我提出了一种组织项目的“标准”方法:
Project
|_ LICENCE.txt
|_ README.txt
|_ code
|_ main.py
|_ __init__.py
|_ tests
|_ context.py
|_ test_main.py
他们说这样会更容易进行单元测试等等。
我访问过几十个做同样事情的网站,所以我认为它不会那么糟糕:错了。我整个周末都在努力完成这项工作,但我觉得自己越来越冷了。
这是我所拥有的: IDE image with project structure with context.py open in the window
从我这几天的阅读来看,这是正确的方法,我的问题是,无论我怎么写,代码都无法识别bidon.py,也无法识别其中定义的函数。
bidon.py 只是一个包含
的文件def add(x, y):
return x+y
def sub(x, y):
return x-y
在上下文中不能使用函数add,但是当测试文件和.py在同一个文件夹中时,它似乎可以工作......
但是为什么即使我添加了路径它也不起作用?我试过(在 context.py 中):
import code
import code
import bidon
from code import bidion
from code import *
from code import bidon
from bidon import *
from code import bidon
from bidon import add
这些都不起作用。
当我尝试在测试文件中使用 context.py 时,情况会变得更糟。 例如在 test_bidon.py 中,我有
import unittest
from .context import code
class TestBidon(unittest.TestCase):
def test_add(self):
result = add(10, 5)
self.assertEqual(result, 15)
if __name__ == "__main___":
unittest.main()
这会产生一个错误,告诉我 test_bidon.py 不是一个包? 再一次,我尝试了多种组合,但都没有奏效。请帮我解决这个问题!我别无选择,我不想再花一天时间寻找任何东西。
【问题讨论】:
标签: unit-testing data-structures project code-organization