上一篇文章介绍了如何简单地使用behat做单元测试,但是在常见的开发中,功能点非常多,不可能所有的功能都直接那样做,要不然会非常凌乱的。

这时候我们可以引入behat的配置文件,做一些简单的配置,就可以把测试功能做一个文件夹归类了。

首先介绍一下,behat在运行时会默认地在运行的当前目录寻找behat.yml,如果当前文件夹没有behat.yml,behat就会生成一些默认的文件夹以及文件,就像上一篇文章里生成的文件目录一样。

这里有一点需要注意的是,behat.yml在哪个文件夹,生成后的文件就会在哪个文件夹。也就是说,生成的文件位置取决于 behat.yml 的位置。这里我们可以先创建两个文件夹 aa/bb,然后在bb文件夹下面创建 behat.yml配置文件,在配置文件里写入如下内容:

default:
  suites:
    user_features:
      paths:    [ D:/src/test/aa/bb/test1/features/web ]
      contexts: [ UserContext ]
    api_features:
      paths:    [ D:/src/test/aa/bb/test1/features/api ]
      contexts: [ ApiContext ]

如截图所示:

这里面的default是一个根,default下面的suites可以不用管,默认就是这样写的。主要看suites下面的层级,如user_features和api_features,这两个可以理解为分别是两个组,组下面有可以设置paths和contexts,以及可以设置其他属性,例如 filters。先执行一下看看吧,说得再多也不太好理解。

这里就需要指定behat的配置文件,然后再初始化

./vendor/bin/behat --config=D:/src/test/aa/bb/behat.yml --init

执行后生成的文件如下图所示:

咱们可以发现一些规律:

1:生成的文件夹和behat.yml在同一级

2:有paths指定路径,执行后就会生成相应的文件夹,这里的文件夹是用于存放.feature文件的,也就是说不会和bootstrap文件夹放在一起了

3:指定contexts后,就会生成指定的context文件,并且后面执行时 behat也能识别该文件了,不会再是默认的FeatureContext.php

好了,这里初始化完成后,可以按照上一篇文章的步骤再走一遍看看效果。

分别创建如下两个文件

然后自动生成测试步骤,执行:

./vendor/bin/behat --config=D:/src/test/aa/bb/behat.yml --dry-run --append-snippets

结果如下图所示:

这里有一个地方需要注意一下,假设我们已经填好了逻辑代码,然后直接运行behat,会发现user_features和api_features都会运行,即有多少个suite就会运行多少个suite,有时候我们可能不想这样,只想运行其中某一个suite,那么我们可以指定运行,如下命令

./vendor/bin/behat --config=D:/src/test/aa/bb/behat.yml --suite=user_features

可以看看指定suite运行和不指定的区别:

好了,behat的配置基本使用大概就介绍到这里,如果需要了解更多的知识,可以进入官方文档看下

6 对 “behat的简单配置”的想法;

发表评论

电子邮件地址不会被公开。 必填项已用*标注