在python的行为中遍历目录

时间:2018-08-02 20:11:15

标签: python gherkin python-behave

我正在使用python的行为BDD工具,并且我有一个xml配置文件目录,在运行其他端到端测试之前,我想对它进行一些自动测试。我已经开始使用场景大纲来编写一些功能文件,并且仅在大纲中列出所有文件名,但是随着添加新文件的进行,伸缩性就不好。

或者,我正在查看读取目录中的所有文件名,并使用environment.py中的“ before_scenario”函数将它们作为列表放入上下文变量中。我看到的问题是,您要立即测试所有文件,而不是按照自己的步骤将每个文件作为自己的方案进行检查,这不是该工具的目的。

我想我想做的是类似场景大纲的内容,但是没有生成静态表。文件有几十个,所以如果我不必静态定义所有内容,那将是最好的。我不确定是否真的支持,但是也许其他人已经解决了这个问题。

# Created by max at 8/2/18
Feature: XML syntax validation
  # Enter feature description here
  @XML
  Scenario Outline: A config file should validate against canary.xsd
  Given we have the <CanaryConfig> config file
  When we validate against canary.xsd
  Then it should validate correctly

  Examples: Config Files
    | CanaryConfig |
    | ACM.xml |
    | sim-tacbio2.xml |

  @XML
  Scenario Outline: A sensor definition file should validate
  Given we have a <sensor definition> sensor definition
  When we validate against a CCSI schema
  Then it should validate correctly

  Examples:
    | sensor definition |
    | ACM.xml  |
    | tacbio2.xml |

1 个答案:

答案 0 :(得分:0)

聚会晚了一点,但是...

您是否考虑过Behave框架之外的解决方案?例如,如果您通过仅调用Behave 的main method 运行Behave,则可以仅使用普通的旧Python进行此预检查。

执行此操作的一种方法是使用Python的内置os.listdir()函数。最初,您可以使用现有XML配置文件的名称保存一个文本文件,然后使用Python将它们写入您的.feature文件中。然后,您可以通过将当前目录的文件与文本文件中列出的文件进行比较,来检查是否已将新文件添加到目录中。如果它们已经存在,则无需进行任何更改即可运行您的程序;如果它们不存在,则可以再次使用Python将这些配置文件写入您的.feature文件。

这将是一种动态方法,因为您无需静态定义任何内容,而是将配置文件的名称​​将存储在文本文件中。