提供基本目录以导入到鼻子的路径

塞德里克·赖兴巴赫

在我的项目中,有一个子目录,其中包含我要进行单元测试的python应用程序。结构如下:

my-project/
  python-app/
    sometool/
      __init__.py
      foo/
        __init__.py
        aaa.py
      bar/
        __init__.py
        bbb.py
    test/
      sometool-tests/
        foo-tests/
          aaa_test.py

现在,aaa.py包含像这样的导入import sometool.bar.bbb,它假定应用程序的基本目录为python-app,这在我的构建设置中确实如此。

aaa_test.py显然是aaa为了测试而导入但是,nosetests ./python-app/sometool/test从主项目目录运行时,导入失败,因为my-project现在是导入的基本目录,即sometool.bar.bbb从那里找不到。

如果我cd进入那里,一切都会按预期进行。但是我想将Visual Studio Code配置为使用快捷方式运行那些测试,并且这些命令似乎总是从项目根目录执行。python-appnosetests ./sometool/test

有没有办法将“基本目录”作为参数传递给Nose?

je

您可以在鼻子测试环境中使用上下文提供模块:

my-project/
  python-app/
     ...
  test/
    context.py

context.py:

import sys
import os
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

import python-app

然后,您可以python-app从上下文模块中导入测试,例如aaa_test.py

from tests.context import python-app
from python-app.sometool import foo, bar

不管执行在哪里,这都应该使鼻子测试始终能够找到python应用程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将 jars 从 Maven 项目导入到项目类路径

来自分类Dev

svn导入到当前目录(没有file:///或http:///)

来自分类Dev

如何将带有模块的目录导入到Python路径,该目录是从子文件夹到原始源的符号链接?

来自分类Dev

从xml导入到wordpress

来自分类Dev

从 CSV 导入到文件

来自分类Dev

将代码从Github导入到Eclipse。获取构建路径错误

来自分类Dev

将现有文件或目录导入到IntelliJ Idea项目中

来自分类Dev

使用Spring将war文件的WEB-INF目录下的资源导入到applicationContext文件

来自分类Dev

将解析导入到Android Studio

来自分类Dev

将Arraylist导入到JTable

来自分类Dev

将数据从CSV导入到PSQL

来自分类Dev

JSON字段从Postgres导入到Elasticsearch

来自分类Dev

将Blender文件导入到OpenSCAD

来自分类Dev

将vertica数据导入到sqoop

来自分类Dev

导入到HDFS或Hive(直接)

来自分类Dev

模拟导入到函数内部的模块

来自分类Dev

将Jdom导入到Eclipse项目

来自分类Dev

无法将证书导入到cacerts

来自分类Dev

将解析类导入到阿尔及利亚

来自分类Dev

使用OleDB / Jet导入到DataTable

来自分类Dev

将外部Viewbox导入到UserControl

来自分类Dev

将Excel导入到TableView(javafx)

来自分类Dev

将图像从javascript导入到.pug

来自分类Dev

CSS文件未导入到Webpack

来自分类Dev

XML导入到DataFrame Python

来自分类Dev

将fortran文件导入到python

来自分类Dev

将图像导入到Drupal网站

来自分类Dev

将数据从MySql导入到Stata

来自分类Dev

csv导入到manytomanyfield Django