Python 带有单元测试的编程项目结构

Python programmation project structure with unit testing

我从事编程已有一段时间,但从未真正深入。现在我在一个研究中心工作,我需要让我的东西连贯和兼容。我的同事向我提出了 "Standard" 组织项目的方法:

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

在上下文中无法使用函数添加,但是当测试文件和 .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

none 个有效。

当我尝试在测试文件中使用 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 不是一个包? 同样,我尝试了多种组合,none 奏效了。请帮我解决这个问题!我别无选择,我不想再花一天时间寻找任何东西。

我找到了一种方法来做我想做的事。我根据需要制作了 github 我的 Basic 项目架构。在设置文件中还有一些工作要做,但主现在可以工作了。

url: https://github.com/PyMarc2/BasicProjectArchitecture

基本上,我不知道为什么,但是当安装文件在测试文件夹中时,它不能很好地工作。相反,将安装文件放在项目文件夹中。

(os.path.abspath(os.path.join(os.path.dirname(__file__), testFolderNameSetup)))

那个命令救了我。

谢谢!