【问题标题】:How to import lettuce steps from other module?如何从其他模块导入生菜步骤?
【发布时间】:2013-10-12 21:45:58
【问题描述】:

我想分享一些生菜不同功能之间的步骤。将它们放在某个模块中,然后在步骤定义之前导入该模块,根本不起作用。我收到未定义步骤的消息。

是否有任何直接的方法可以在生菜的不同功能之间共享步骤定义?

【问题讨论】:

  • 这很奇怪,因为您尝试的方式应该可以工作(它对我有用)。你能给出你项目的结构吗?
  • pastebin.com/UTSM1PeP - 这是项目目录树。我将模块从 common_steps 导入到每个功能测试 - 它们被导入,功能也是如此,但 lettuce 看不到它们。无法提供更多细节,因为它是一个商业项目。

标签: python lettuce


【解决方案1】:

创建这样的目录结构:

root:
    __init__.py
    features:
        __init__.py
        steps.py: # global steps
        some_features:
            __init__.py
            file.feature
            steps.py # specific steps 

root/features/steps.pyroot/features/some_features 中定义您的全局步骤

做:from root.features.steps import *

含义:some_features的步骤是some_features/steps.py

【讨论】:

    【解决方案2】:

    在应用程序目录中定义的步骤是否正常工作?我想知道他们是否这样做,因为导入一个函数基本上与在同一个文件中定义它相同。

    lettuce docs 中所述,您的所有生菜文件(功能和步骤)都必须位于 app/features 目录中。我建议您将步骤和功能文件移动到应用程序内的“功能”目录。我认为这会解决问题。

    【讨论】:

      猜你喜欢
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 2021-07-16
      • 2017-08-20
      • 1970-01-01
      • 2019-09-04
      • 2011-05-20
      • 2019-11-19
      相关资源
      最近更新 更多