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)))
那个命令救了我。
谢谢!
我从事编程已有一段时间,但从未真正深入。现在我在一个研究中心工作,我需要让我的东西连贯和兼容。我的同事向我提出了 "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)))
那个命令救了我。
谢谢!