从同级目录导入模块以与 py.test 一起使用

2023-12-25

我在将任何内容导入我打算使用 py.test 运行的测试文件时遇到问题。

我的项目结构如下:

/ProjectName
|
|-- /Title
|    |-- file1.py
|    |-- file2.py
|    |-- file3.py
|    |-- __init__.py
|
|-- /test
|    |-- test_file1.py

我无法在 pytest 中获得任何与 pytest 一起使用的导入语句test_file1.py文件,所以我目前只是尝试使用在中声明的变量file_1.py并打印出来test_file1.py is run.

file1.py 包含:

file1_variable = "Hello"

test_file1.py 包含:

import sys
import os
sys.path.append(os.path.abspath('../Title'))
import file1

def test_something():
    assert file1.file1_variable == "Hello"

print(file1.file1_variable)

我的测试文件中的导入语句取自https://stackoverflow.com/a/10272919/5477580 https://stackoverflow.com/a/10272919/5477580它通过编辑 PYTHONPATH 变量来工作。这允许我运行test_file1.py脚本并成功执行print陈述。

然而,尝试运行py.test来自/ProjectName目录给我一个错误说ImportError: No module named 'file1'

有什么方法可以更好地构建事物,以便 pytest 成为可能吗?我需要添加一些东西到我的__init__.py file?


不,你不需要添加任何东西__init__.py。该文件告诉 python 将父目录视为模块,可以将其导入为此处描述 https://docs.python.org/2/tutorial/modules.html#packages。 只需将其添加到您的 Title 目录中并像这样导入

from ..Tiltle.file import file1_variable

在这里,我们将目录中的 1 个层次结构移至上方,就像cd ..

Note ..用于从以下位置获取标题包test目录。如果您需要运行您的文件项目名你必须做的目录

from Tiltle.file import file1_variable
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从同级目录导入模块以与 py.test 一起使用 的相关文章

随机推荐

  • React 中的 JQuery 移动组件

    React 中的 JQuery 移动组件 我对这个概念还很陌生 仍然需要弄清楚 我构建了一个用于移动目的的应用程序 并决定将其包装在 React 组件中 我的代码 索引 html
  • 加密部署 .NET 的配置文件

    我有一个从 app config 读取的 Windows 服务 我希望对某些设置进行加密 但是 我不想使用 NET 中提供的 ProtectedConfigurationProvider 类 因为它们使用 DPAPI 根据运行的计算机来加密
  • Cython 中 numpy 数组掩码的性能

    作为这个问题的后续here https stackoverflow com questions 45882166 performance of updating multiple key value pairs in a dict 感谢 M
  • Git 更改基础分支

    我有一个名为 develop 的分支 并基于该分支我创建了另一个分支 TestFeature 然后我基于 TestFeature 制作了其他分支 NewFeature 并进行了一些更改并提交 问题是我不希望文本功能中的更改出现在我的新功能分
  • 当双方都被删除时,为什么 git 给我一个“删除合并冲突”?

    我正在合并更新版本master进入我的分支 在 master 中 一个文件已被删除 我也删除了 Git 给了我以下内容 Deleted merge conflict for Lib SharedBL WebServices WebAPI A
  • 如何加载 .mat 文件并将其转换为 numpy 二维数组?

    我在 mat 文件中有一个数据 观察结果和特征 我想将其加载到 numpy 2D 数组中 我不想先将其转换为 csv 然后将 csv 加载到 numpy 中 Use scipy 的 loadmat API 文档 https docs sci
  • Javascript 中哪个更有效:while 或 for 语句?

    我最近有机会在 javascript 中进行循环 但我很困惑是否使用 for 循环或 while 语句 var i foo length while i or for var i 0 i lt foo length i 我想从 javasc
  • Struts2 正则表达式配置

    我正在创建一个 Struts2 Web 应用程序 我想要一个像这样的网址www xyz com portal orgCode signin 这个组织代码是动态的 所以我使用正则表达式 我将 struts xml 配置为
  • 仅将唯一值添加到 python 中的列表中

    我正在努力学习Python 以下是练习的相关部分 对于每个单词 检查该单词是否已在列表中 如果 该单词不在列表中 请将其添加到列表中 这是我所拥有的 fhand open romeo txt output for line in fhand
  • 合并的资源字典可以访问 App.xaml 中的资源吗?

    Can 合并资源字典 https msdn microsoft com en us windows uwp controls and patterns resourcedictionary and xaml resource referen
  • 通过 PHP 实现浏览器之间的通信

    我正在为一个学校项目构建一个简单的ajax聊天客户端 并想到了一种实现它的方法 但在我看来very繁琐的做法 1 用户A发送消息 该消息被服务器端PHP脚本接受并保存到数据库 2 用户B的浏览器定期启动服务器端PHP脚本来检查数据库中是否有
  • 当数据类属性更改时,使 React 组件重新渲染

    在我的 Typescript 应用程序中 有一个代表一些数据的类 这个类是端到端共享的 前端和后端都使用它来构造数据 它有一个名为items这是一个数字数组 class Data constructor this items 0 addIt
  • Kafka Spring Cloud Stream 的多个 @EnableBinding

    我正在尝试设置一个侦听 Kafka 的 Spring Boot 应用程序 我正在使用 Kafka Streams Binder 用一个简单的 EnableBinding EnableBinding StreamExample StreamP
  • 尝试加载使用 browserify-shim 填充的模块时,karma-browserify 会抛出错误

    我知道有类似的问题 但没有一个解决我的问题 当我跑步时karma test每次尝试加载使用 browserify shim 填充的模块时 它都会抛出以下错误 TypeError undefined is not an object eval
  • 如何隐藏迷你分析器?

    我正在使用 MVC Mini 分析器来检查应用程序特定部分的速度 并希望将其保留在那里 以防以后发生某些情况并且我可能需要检查 出了什么问题 它不是完整的日志集 但它对于了解导致页面花费很长时间的原因非常方便 因此 我的目标是隐藏它并仅在请
  • 当数量选择更改时,WooCommerce 显示总价

    我需要在数量发生变化时在产品页面中显示总价 如果您在购物车中添加产品数量 则这与购物车中的行价格相同 我对 WooCommerce 还很陌生 所以我不知道从哪里开始 但如果有人能帮助我走向正确的方向 我想我可以自己应对 所以这是我应该如何做
  • 将单个 Google 日历事件导出到 ICS?

    我目前正在研究在网页上显示多个 Google 日历的事件列表的可能性 目前 我正在使用适用于 WordPress 的 Google 日历活动插件来显示网站上的活动 开发网站位于防火墙后面 因此我无法共享链接 但我想看看是否有任何简单的方法可
  • 请解释如何创建 PHP 的 Phar 存根

    我正在尝试创建一个非常简单的 PHP CLI 应用程序 可以作为phar http php net manual book phar php从命令行文件 php myProject phar 这是我到目前为止所尝试过的 我的项目 我的项目位
  • 从内容脚本启动时,chrome.downloads.erase 不起作用

    我正在尝试创建一个 Chrome 扩展程序 当进入某个网站时 我正在删除下载历史记录 我从后台页面使用这个 chrome downloads erase function item console log Erased item conso
  • 从同级目录导入模块以与 py.test 一起使用

    我在将任何内容导入我打算使用 py test 运行的测试文件时遇到问题 我的项目结构如下 ProjectName Title file1 py file2 py file3 py init py test test file1 py 我无法