小编Sam*_*mer的帖子

Behat 3 - 找不到`FeatureContext` 上下文类,无法使用

我过去曾尝试过 Behat 2.5,并且在设置时没有遇到任何问题,但现在我刚刚下载了 Behat 3,但在尝试设置时遇到了一些困难。

我的问题是,在全新安装后,如果我创建了一个 behat.yml 文件,我似乎无法定义 FeatureContext 文件的位置,也无法运行任何测试。

我的 composer.json 如下所示:

{
"require-dev": {
    "behat/behat": "~3.0.4",
    "sensiolabs/behat-page-object-extension": "2.0.*@dev"
},
"require": {
    "behat/mink": "1.6.*",
"behat/mink-goutte-driver": "*",
    "behat/mink-selenium2-driver": "*"
}
Run Code Online (Sandbox Code Playgroud)

}

我的项目文件夹的结构如下:

behat/
  bootstrap/
    FeatureContext.php
  config/
    behat.yml
  features/
    CheckHome.feature
  vendor/
  composer.json
  composer.lock
Run Code Online (Sandbox Code Playgroud)

还有我的 behat.yml 文件:

default:
  autoload:
    '': %paths.base%/../bootstrap
  suites:
    default:
      paths:
        - %paths.base%/../features
      contexts:
        - FeatureContext
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 CheckHome.feature 运行场景时

vendor/bin/behat
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Behat\Behat\Context\Exception\ContextNotFoundException]
`FeatureContext` context class not found and can not be used.
Run Code Online (Sandbox Code Playgroud)

设置自动加载以便识别我的上下文的正确方法是什么?

谢谢

php autoload behat composer-php

7
推荐指数
1
解决办法
1万
查看次数

在 Jekyll 的帖子 URL 中包含子目录

我正在建立一个英语和西班牙语的博客。我的目的是直接从基本 url: 访问西班牙语的默认内容:http://blog/和来自http://blog/en.

在分页时,我已经拥有了所有代码来循环浏览仅用英语或西班牙语编写的帖子,方法是检查locale我在每个帖子前面设置的变量。虽然我的博客文章没有相同的文件名,但我在前面使用另一个名为ref.

因此,对于西班牙语的帖子 A 和英语的帖子 B,我将有以下内容:

2018-01-01-post-A.md

---
locale: en
ref: my-ref
---
foo
Run Code Online (Sandbox Code Playgroud)

2019-01-04-post-B.md:

---
locale: es
ref: my-ref
---
bar
Run Code Online (Sandbox Code Playgroud)

我的问题是:我应该把我的英文帖子放在哪里,以便可以通过 访问它们http://blog/en/post-name/

这些帖子除了他们的语言之外已经有了他们的类别,所以把它们放在里面/en/_posts是行不通的,因为当将永久链接指定_config.yml为类似的东西permalink: /:categories/:year/:month/:title/会使 url 看起来像http://blog/en/category-1/category-2/post-name.

在每个英文帖子中定义固定链接也不是一种选择,因为我希望它们是从帖子数据(日期和标题)中生成的。

有什么我遗漏的东西可以让我根据需要/en/用作 URL 的一部分吗?

菜单语言选择器和分页都可以工作,只显示所选语言的帖子。但是,当将鼠标悬停在英文帖子上时,虽然我将它们放在了里面_posts/en,但子文件夹不会成为 url 的一部分。当我尝试相反的方法时也会发生同样的情况,在名为的项目根目录中创建一个新文件夹并在其中en添加所有英文帖子,给我留下类似的东西en/_posts/

ruby liquid jekyll

5
推荐指数
1
解决办法
584
查看次数

Ruby'sort'将1XX值放在数组中的8X值之前

我有这个简单的数组,我想从较低的数字到更高的数字订购:

"80", "84", "115", "98", "128", "131", "132", "128", "139", "140", "141", "142", "142", "124", "144", "145", "148", "149", "152", "97"
Run Code Online (Sandbox Code Playgroud)

要对它进行排序,我会使用sort,但输出不是我期望的输出.

这是我的代码:

def try_order
  unordered = ["80", "84", "115", "98", "128", "131", 
               "132", "128", "139", "140", "141", "142", 
               "142", "124", "144", "145", "148", "149", "152", "97"]
  p "Unordered list is #{unordered}."

  ordered = unordered.sort

  p "Ordered list is #{ordered}."
end

try_order
Run Code Online (Sandbox Code Playgroud)

输出如下:

"Unordered list is 80841159812813113212813914014114214212414414514814915297."
"Ordered list is 11512412812813113213914014114214214414514814915280849798."
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,有序列表不是以较低的数字(即80)开头,而是将3位数字首先从1开始.

有什么我想念的吗?

ruby arrays sorting

0
推荐指数
2
解决办法
101
查看次数

如何使用Watir为每个测试运行一个新的浏览器实例?

在同一次运行中执行多个测试时,我发现我得到的错误比我逐个执行测试的错误要多.当我研究这种行为时,我希望通过运行执行我想要的测试的rake任务来获得更准确的结果,但是在新的浏览器实例上运行每个测试,就像我逐个执行它们一样.通过这种方式,我可以获得与手动操作相同的结果,但避免了必须在终端上逐个启动它们的麻烦.

我在文档中搜索过这个功能但是找不到它,我在StackOverflow上发现的唯一类似的问题与selenium有关,而不是watir.

有可能做我正在寻找的事情吗?怎么样?

谢谢.

ruby rake automation qa watir

-1
推荐指数
1
解决办法
717
查看次数

标签 统计

ruby ×3

arrays ×1

autoload ×1

automation ×1

behat ×1

composer-php ×1

jekyll ×1

liquid ×1

php ×1

qa ×1

rake ×1

sorting ×1

watir ×1