我正在使用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 |
答案 0 :(得分:0)
聚会晚了一点,但是...
您是否考虑过Behave框架之外的解决方案?例如,如果您通过仅调用Behave 的main method 运行Behave,则可以仅使用普通的旧Python进行此预检查。
执行此操作的一种方法是使用Python的内置os.listdir()
函数。最初,您可以使用现有XML配置文件的名称保存一个文本文件,然后使用Python将它们写入您的.feature
文件中。然后,您可以通过将当前目录的文件与文本文件中列出的文件进行比较,来检查是否已将新文件添加到目录中。如果它们已经存在,则无需进行任何更改即可运行您的程序;如果它们不存在,则可以再次使用Python将这些配置文件写入您的.feature
文件。
这将是一种动态方法,因为您无需静态定义任何内容,而是将配置文件的名称将存储在文本文件中。