【问题标题】:Python programmation project structure with unit testing带有单元测试的 Python 编程项目结构
【发布时间】: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


    【解决方案1】:

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

    网址:https://github.com/PyMarc2/BasicProjectArchitecture

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

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

    那个命令救了我。

    谢谢!

    【讨论】:

      猜你喜欢
      • 2013-01-04
      • 2022-07-28
      • 2018-09-08
      • 2022-11-08
      • 2015-04-21
      • 1970-01-01
      • 2014-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多