我已经编程了一段时间,但从未深入研究过它。现在我在一个研究中心工作,我需要让我的东西连贯和兼容。我的同事向我提出了一个"标准"组织我的项目的方法:
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不是一个包吗? 再次,我尝试了多个组合,没有一个工作。请帮我解决这个问题!我没有选择,我不想再花一天时间寻找任何东西。
答案 0 :(得分:0)
我找到了一种方法来做我想做的事。我根据自己的意愿制作了基本项目架构的github。设置文件中仍有工作要做,但现在可以使用。
url:https://github.com/PyMarc2/BasicProjectArchitecture
基本上,我不知道为什么,但是当安装文件位于测试文件夹中时,它不能正常工作。而是将安装文件放在项目文件夹中。
(os.path.abspath(os.path.join(os.path.dirname(__file__), testFolderNameSetup)))
这个命令救了我。
谢谢!