- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有以下项目结构:
foo
│
├── foo
│ ├── cli
│ │ ├── tests
│ │ └── __init__.py
│ ├── core
│ │ ├── tests
│ │ └── __init__.py
│ ├── tests
│ │ ├── __init__.py
│ │ └── test_foo.py
│ ├── __init__.py
│ └── foo.py
├── kube
├── requirements
├── ...any-other-non-source-related
└── README.md
在 foo/foo.py
文件中,我有以下占位符代码:
import cli
import core
def say_hi():
print('hi')
if __name__ == '__main__':
say_hi()
在文件 foo/tests/test_foo.py
上,我有以下内容:
from foo import foo
def test_foo():
foo.say_hi()
assert False
然后,在 shell 中,我得到以下信息:
$ python foo/foo.py
hi
$ pipenv run pytest
===================== test session starts =====================
platform linux -- Python 3.7.4, pytest-5.3.1, py-1.8.0, pluggy-0.13.1
rootdir: /xxx/xxx/xxx/xxx/python-project-folder-structures
collected 0 items / 1 error
===================== ERRORS =====================
_____ ERROR collecting foo/tests/test_foo.py _____
ImportError while importing test module '/xxx/xxx/xxx/xxx/python-project-folder-structures/foo/tests/test_foo.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
foo/tests/test_foo.py:1: in <module>
from foo import foo
foo/foo.py:1: in <module>
import cli
E ModuleNotFoundError: No module named 'cli'
!!!!!!! Interrupted: 1 error during collection !!!!!!!
===================== 1 error in 0.05s =====================
有人可以帮忙吗?为什么 Pytest 没有建立我的导入?我尝试了多种方法,即使在 foo
文件夹(根级别)之外使用 tests
文件夹,但错误仍然存在。
我发现解决这个问题的唯一方法是将 conftest.py
文件放在代码级别,这样它就会被 pytest
发现。我真的不想这样做,因为我想将测试与源代码分离。
最佳答案
如果有人为此苦苦挣扎,我能够找到解决方案。我从 foo
目录中删除了 __init__.py
文件,给出了以下结构:
foo
│
├── foo
│ ├── cli
│ │ ├── tests
│ │ └── __init__.py
│ ├── core
│ │ ├── tests
│ │ └── __init__.py
│ ├── tests
│ │ ├── __init__.py
│ │ └── test_foo.py
│ └── foo.py
├── kube
├── requirements
├── ...any-other-non-source-related
└── README.md
他们,在 mt 测试中,我现在得到以下结果:
import foo
def test_foo():
foo.say_hi()
assert False
我注意到 Pytest 的行为是从测试一直到根目录,识别包。由于 foo
是一个包(带有 __init__.py
文件),因此它会将其作为一个包添加到我的 PATH
:)
重要请注意,import foo
语句涉及 foo.py
文件,而不是 foo
目录。因此,如果您的文件在 foo
目录中名为 boo.py
,则导入应为:import boo
关于在 Pytest 上找不到 Python 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59120154/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!