天道酬勤,学无止境

Use behave tags to execute only a subcase of such tag

I have the following scenario definition in a sample.feature file, with scenario with two sub-cases using the Examples syntax:

  @ninja
  Scenario Outline: this is a sample scenario
    Given ...
    And ...
    And ..
    When ...
    Then ...

    Examples:
      | param1 | param2 | param3 |
      |     10 |      4 |      9 | 
      |     20 |      8 |     23 |

I can use the tag ninja to execute only that scenario, among all the others defined in the sample.feature file, as follows:

$ behave sample.feature --tags=ninja
...
Scenario Outline: this is a sample scenario -- @1.1
...
Scenario Outline: this is a sample scenario -- @1.2
...

Note that behave "marks" each subcase execution, i.e. @1.1 and @1.2 in execution log.

I'd like to know if I can be even more "sharp" and use behave to execute only one (or a subset) of subcases of a given tag. I have tried the following, with no luck (i.e. both subcases are executes, not only the second one):

$ behave sample.feature --tags=ninja,1.2

Is that possible? Any help on how doing it, please?

评论

Yes, it is possible to execute only one row in a Scenario Outline (Examples), first is necessary to define a placeholder in the tag into the feature file, example:
@test.row<row.id> Reference in Behave

After, to execute:

behave example.feature -t @test.row1.2 -- run only the row: 2 with this tag.

Also it is posible create several examples, like this:

    Examples:
      | param1 | param2 | param3 |
      |     10 |      4 |      9 | 
      |     20 |      8 |     23 |
    Examples:
      | param1 | param2 | param3 |
      |     30 |     12 |      1 | 
      |     40 |     13 |     45 |
      |     50 |     14 |     49 | 
      |     60 |     15 |     13 |

And,

behave example.feature -t @test.row2.4 -- run only the row: 4 in the second examples with this tag:

      |     60 |     15 |     13 |

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何将我在 OOP 中的想法转换为 Haskell?(How to convert my thoughts in OOP to Haskell?)
    问题 例如,我有一个容器类型来保存具有共同特征的元素。 我还提供了一些类型作为元素。 而且我还希望这个功能可以轻松扩展(其他人可以制作自己的元素类型并由我的容器保存)。 所以我这样做: class ElementClass data E1 = E1 String instance ElementClass E1 data E2 = E2 Int instance ElementClass E2 data Element = forall e. (ElementClass e) => Element e data Container = Container [Element] 这很好,直到我需要单独处理元素。 由于forall,函数“f :: Element -> IO()”无法知道它到底是什么元素。 以 Haskell 风格执行此操作的正确方法是什么? 回答1 知道它到底是什么元素 要知道这一点,您当然应该使用简单的 ADT data Element' = E1Element E1 | E2Element E2 | ... 通过这种方式,您可以对容器中的哪个进行模式匹配。 现在,这与 其他人可以制作自己的元素类型并由我的容器保存 它必须冲突! 当其他人被允许向元素列表添加新类型时,就没有办法安全地匹配所有可能的情况。 所以如果你想匹配,唯一正确的事情就是拥有一组封闭的可能性,正如
  • 使用行为一致但已过时的HTML标记的缺点?(Disadvantages of using consistent-behaving yet deprecated HTML tags?)
    问题 用户访问我的网站时,他们并不关心页面编码的完美程度或标准。 他们只在乎它是否有效。 有些标签已弃用,但在所有主要浏览器,次要浏览器和非常次要浏览器中都具有一致的行为。 他们现在工作,将来会工作。 (我不是在谈论诸如<marquee>和<blink>类的可选标签,因为它们的不存在不会破坏页面,将来可能会删除它们。)例如,我正在谈论的标签是: <center> (由google.com主页使用,是的,它是2014年5月) <body bgcolor= , alink= , vlink= , link= (全部由google.com使用) <font size= (也由google.com使用) 如果我的HTML生成器生成了<body bgcolor=black>类的标签,则可以保证将近100%的用户使用。 如果改为生成CSS,例如background:black; ,与<body bgcolor=black>相比,它受到较少用户的支持。 (从https://superuser.com/q/732669/78897和https://superuser.com/q/447269/78897开始,尽管我确定它们并不是全世界唯一的。) 忍受我,这是一个基于真实问题的真实问题。 将这些标签作为输出的真正缺点是什么? 回答1 潜在的缺点包括: 1)您的客户可能实际上在乎代码的标准。
  • 在浏览器中使用 ES6 模块时,我应该在 `script` 标签中引用文件吗(Should I reference files in a `script` tag when using ES6 modules in a browser)
    问题 我似乎无法找到关于在使用 ES6 模块时是否应该在<script>标签中包含文件或者浏览器是否会自动请求它们的问题的答案? 如果是这样,它如何解析路径? 回答1 在评论中你说过: 我知道还没有支持。 我的问题是关于它在实施时的表现 我们第一次发布这个问题和答案时没有,但现在有了。 它与我之前描述的暂时指定的内容相匹配:您使用type="module" : <script src="mod.js" type="module"></script> 您只对入口点执行此操作,而不对入口点通过import引用的模块执行此操作(更多内容见下文)。 来自 WHAT-WG 规范: type 属性允许自定义表示的脚本类型: ... 将该属性设置为字符串“module”的不区分大小写的 ASCII 匹配意味着该脚本是一个模块脚本,将根据 JavaScript 模块顶级产品进行解释。 ... ... ... 经典脚本和模块脚本可以嵌入内联,也可以使用src属性从外部文件导入,如果指定,则提供要使用的外部脚本资源的 URL。 模块依赖项将被解析并自动获取,您不会在它们自己的script标签中列出它们。 只是入口点。 请注意,您可以使用nomodule属性为启用模块的浏览器提供模块,也可以向非启用模块的浏览器提供转译包: nomodule属性是一个布尔属性,可防止在支持模块脚本的用户代理中执行脚本。
  • 在行为方面,您如何仅运行场景?(In behave, how do you run a scenario only?)
    问题 我有一个“行为”功能,上面有很多测试。 我只需要运行一个特定的场景来满足开发需求。 我该怎么做? (最好在命令行上) 回答1 要仅运行单个场景,您可以将-n与场景名称一起使用: $ behave -n 'clicking the button "foo" should bar the baz' 我在上面使用单引号将场景名称保留为-n一个参数。 否则,shell 会将场景名称的每个单词作为单独的参数传递。 回答2 如果您想为该功能运行单个测试,请使用-n或--name标志,这似乎需要Scenario:之后的文本Scenario: behave -n 'This is a scenario name' 您可以通过使用-i或--include标志然后使用功能文件的名称来运行功能文件。 behave -i file_name.feature 或者: behave --include file_name 您还可以使用--exclude标志排除: behave -e file_name 有关更多信息,请查看命令行参数的文档。 他们的附录部分隐藏了很多有用的信息。 注意:在我写这篇文章的时候,由于这个问题,它不适用于 Python 3.6 和 Behave 1.2.5。 (更新:1.2.6 已发布并修复了此问题,但如果您使用的是 python 3.4,则 pip 将无法使用该版本
  • How to set: “artist”, “album artist”, “year”, “album”, “song number” and “title” fields of the tag, with mutagen
    I'm trying to use mutagen (with Python 2.7.5) to create a program that, given that the path to songs is ...\Artist\Year Album\Songnumber Title.mp3, sets the artist, album artist, year, album, song number and title tags of the song, and preserves the genre tag. I tried to do this with EasyID3, but it doesn't have the album artist tag. I also tried to do it with regular ID3, but I ran into a couple of problems with it. Here's the code I used: from mutagen.id3 import ID3, TIT2, TPE2, TALB, TPE1, TYER, TDAT, TRCK, TCON, TORY, TPUB p = "E:\\Musik\\Aeon\\2005 Bleeding the False\\01 Cenobites - Copy
  • 如何设置:带有诱变剂的标签的“艺术家”,“专辑艺术家”,“年份”,“专辑”,“歌曲编号”和“标题”字段(How to set: “artist”, “album artist”, “year”, “album”, “song number” and “title” fields of the tag, with mutagen)
    问题 我正在尝试使用mutagen(使用Python 2.7.5)创建一个程序,假设歌曲的路径为...\Artist\Year Album\Songnumber Title.mp3 ,则设置了艺术家,专辑艺术家,年份,专辑,歌曲编号和歌曲的标题标签,并保留流派标签。 我尝试使用EasyID3进行此操作,但它没有专辑艺术家标签。 我也尝试使用常规ID3进行操作,但是遇到了一些问题。 这是我使用的代码: from mutagen.id3 import ID3, TIT2, TPE2, TALB, TPE1, TYER, TDAT, TRCK, TCON, TORY, TPUB p = "E:\\Musik\\Aeon\\2005 Bleeding the False\\01 Cenobites - Copy.mp3" audio = ID3(p) audio.add(TIT2(encoding=3, text=u"t")) #TITLE audio.add(TRCK(encoding=3, text=u"1")) #TRACK audio.add(TPE1(encoding=3, text=u"a")) #ARTIST audio.add(TALB(encoding=3, text=u"al")) #ALBUM audio.add(TYER(encoding=3, text=u
  • 如果文档正文中存在meta标签,会发生什么情况?(What happens if the meta tags are present in the document body?)
    问题 我正在开发ASP应用程序,并且代码,模板和文件的组织方式不允许我更改body标记之外的任何内容。 所以我正在考虑将meta标签插入到体内-像这样: <!-- FEW ASP INCLUDES --> <html> <head> <!-- FALLBACK TITLE AND DESCRIPTION --> <title>Default Title</title> <meta name="description" content="Default Description"> </head> <body> <!-- SOME HTML MARKUP --> <div class="dynamic-content"> <!-- InstanceBeginEditable name="dynamic-content" --> <!-- THIS IS WHERE I CAN WRITE ASP CODE --> <title><%= Page.Meta.GetTitle( yada, yada ) %></title> <meta name="description" content="<%= Page.Meta.GetDescription( yada, yada ) %>"> <!-- InstanceEndEditable --> </div> <!-- SOME MORE
  • setdefault 与 defaultdict 性能(setdefault vs defaultdict performance)
    问题 我正在为性能很重要的应用程序编写代码。 我想知道为什么defaultdict似乎比setdefault更快。 我希望能够使用setdefault ,主要是因为我不喜欢嵌套defaultdict的打印输出(参见下面的实现)。 在我的代码中,我需要测试element_id是否已经是字典的键。 这是我正在测试的两个功能: def defaultdictfunc(subcases,other_ids,element_ids): dict_name= defaultdict(lambda: defaultdict(lambda: defaultdict(dict))) for subcase in subcases: for other_id in other_ids: for element_id in element_ids: if element_id in dict_name[subcase][other_id]: # error duplicate element_id pass else: dict_name[subcase][other_id][element_id]=0 return dict_name def setdefaultfunc(subcases,other_ids,element_ids): dict_name={} for subcase in
  • jQuery html()与innerHTML(JQuery html() vs. innerHTML)
    问题 我可以完全依靠jQuery的html()方法来实现与innerHTML相同吗? innerHTML和jQuery的html()方法之间有什么区别吗? 如果这些方法都相同,是否可以使用jQuery的html()方法代替innerHTML ? 我的问题是:我正在设计的页面上工作,这些页面包含表格,而在JavaScript中, innerHTML属性用于动态填充它们。 该应用程序在Firefox上运行良好,但是Internet Explorer会引发错误: unknown runtime exception 。 我使用jQuery的html()方法,而IE的错误已消失。 但是我不确定它是否适用于所有浏览器,也不确定是否用jQuery的html()方法替换所有innerHTML属性。 非常感谢。 回答1 要回答您的问题: 在检查完nodeTypes和东西之后, .html()只会调用.innerHTML 。 它还使用try/catch块,尝试首先使用innerHTML ,如果失败,它将优雅地回.empty() jQuery的.empty() + append() 回答2 特别是关于“我可以完全依赖于它将像innerHTML一样执行的jQuery html()方法”时,我的回答是否定的! 在Internet Explorer 7或8中运行此命令,您将看到。 当设置包含嵌套在<P
  • setdefault vs defaultdict performance
    I am writing code for an application where performance is important. I am wondering why defaultdict seems to be faster then setdefault. I would like to be able to use setdefault, mostly because i do not like the print output of the nested defaultdict (see implementation below). In my code, i need to test if element_id is already a key of the dict. Here are the two functions that i am testing: def defaultdictfunc(subcases,other_ids,element_ids): dict_name= defaultdict(lambda: defaultdict(lambda: defaultdict(dict))) for subcase in subcases: for other_id in other_ids: for element_id in element
  • 记录标签最多可以包含23个字符(The logging tag can be at most 23 characters)
    问题 从更新AS 1.1 Preview 2开始,我的所有Log消息下方都出现红线 Log.d(TAG, "message"); 带有消息:“日志记录标签最多可以包含23个字符。 ”。 除了Android Studio本身之外,我没有从根本上更新任何内容。 这是一个错误吗? 回答1 不,这不是错误。 根据Android Studio在1.1预览版上的最新更改2, 检查传递给日志记录调用的标签(如果它的值可以解析)是否最长为23个字符(根据日志记录API的要求)。 正如最近对更改所做的简短解释,这是由于Log API如何不允许超过23个字符的标记所致。 Android SLF4J对此有一个解释: 此类标签的长度当前限制为23个字符(名称空间前缀为23 = 32-8-C终止符为1) 与Android的源代码匹配。 当前,唯一明确提及此异常的函数是Log.isLoggable(), ... 投掷如果tag.length()> 23,则抛出IllegalArgumentException 。 但是,基于注释,很明显,记录器确实在发布模式下引发了异常(在调试模式下被忽略)。 您可以按照Terence的回答来禁用棉绒检查,但已收到警告。 回答2 您可以选择禁用它。 在Android Studio中,分析->检查代码。 在“检查配置文件”下,单击带有3个水平点的按钮。 应打开以下窗口。 搜索
  • 如何使用 ng-switch 来满足多个相同的条件?(How can I use ng-switch to satisfy multiple, same conditions?)
    问题 我想根据身份验证状态使用 AngularJS 创建一段 HTML。 我使用ng-switch 。 问题是我想在一个条件上多次点击,但 AngularJS 只满足最后一个条件。 由于 Bootrap 具有流畅的布局,HTML 的监听非常接近。 span3和span9必须直接位于row-fluid容器 div 下方,否则将无法很好地浮动。 所以我不能向它引入额外的ng-switch div... <div class="row-fluid" ng-switch on="user.isAuthenticated"> <div class="span3" ng-switch-when="true"><div> <div class="span9 spade-contentwrapper" ng-switch-when="true"><div> <div class="spade-contentwrapper" ng-switch-when="false"><div> <div> 请参阅我的简化小提琴。 回答1 Angular 1.1.5 支持ng-if 。 你可以看看那个。 然后你可以有独立的条件。 回答2 有人重写了 ngSwitchWhen 指令以包含允许 || 的选项运营商,您可以在此处找到原始回复:http://docs.angularjs.org/api/ng
  • 我可以在Internet Explorer中将整个HTML文档加载到文档片段中吗?(Can I load an entire HTML document into a document fragment in Internet Explorer?)
    问题 这是我遇到的一些困难。 我有一个本地客户端脚本,该脚本需要允许用户获取远程网页并在该页面上搜索表单。 为了做到这一点(不使用正则表达式),我需要将文档解析为一个完全可遍历的DOM对象。 我想强调一些限制: 我不想使用库(如jQuery)。 我在这里要做的事情太肿了。 在任何情况下都不应执行远程页面中的脚本(出于安全原因)。 DOM API,例如getElementsByTagName ,必须可用。 它仅需要在Internet Explorer中工作,但至少要在7中工作。 假设我无权访问服务器。 我可以,但是我不能用它。 我尝试过的 假设我在变量html具有完整的HTML文档字符串(包括DOCTYPE声明),这是到目前为止我已经尝试过的方法: var frag = document.createDocumentFragment(), div = frag.appendChild(document.createElement("div")); div.outerHTML = html; //-> results in an empty fragment div.insertAdjacentHTML("afterEnd", html); //-> HTML is not added to the fragment div.innerHTML = html; //-> Error
  • Disadvantages of using consistent-behaving yet deprecated HTML tags?
    When users visit my website, they don't care about how perfect or how much standard the page is coded. They only care about whether it works or not. There are tags that are deprecated but have consistent behavior throughout all major, minor, and very minor browsers. They work now and will work in the future. (I'm not talking about optional tags like <marquee> and <blink> which will probably be removed in the future since their non-existence doesn't break pages.) The tags I'm talking about are for example: <center> (used by google.com homepage, yes and it's May 2014) <body bgcolor=, alink=
  • PHP 的怪癖和陷阱 [关闭](PHP quirks and pitfalls [closed])
    问题 就目前而言,这个问题不适合我们的问答形式。 我们希望答案得到事实、参考或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。 如果您觉得此问题可以改进并可能重新打开,请访问帮助中心以获取指导。 9年前关闭。 我已经意识到,虽然我的大部分经验都在于编写 PHP 应用程序,但我发现自己时不时会犯“初学者错误”。 这是因为 PHP 是一种非常有机地发展的语言,因此有一些我不知道的特质、怪癖和陷阱。 我希望这个问题成为所有那些想从我们可能认为的规则中了解 PHP 的陷阱和例外的人的 wiki。 但是请不要写一般的回复,例如: 一些函数接收参数为$needle , $haystack ,而一些函数接收参数为$haystack , $needle 。 告诉函数名称。 你有我的一些答案作为例子。 哦,并为每个答案添加一个陷阱。 通过这种方式,我们将看到哪个是最受鄙视的(通过投票)。 我不想开始一场火焰战争,保持主题。 如果你想写一些关于 PHP 的坏事,那么把它作为对相应答案的评论。 希望这个维基对我们所有人,初学者和专家都有帮助。 更新: 在 Andrew Moore 发表评论之后,我认为答案还应该包含针对该陷阱的解决方案或解决方法。 回答1 序列化处理 XML 结构的对象然后反序列化它们不会恢复原始的 XML 结构: $dom = new DOMDocument; $dom
  • 前端面试题总结-HTML篇
    HTML知识点总结 1. DOCTYPE的作用是什么?   DOCTYP是document type(文档类型)的缩写。<!DOCTYPE> 声明位于文档的最前面,处于标签之前,它不是html标签。   主要作用是:告诉浏览器以什么样的模式来解析文档。   一般指定了之后会以标准模式来进行文档解析,否则就医兼容模式进行解析。在标准模式下,浏览器的解析规则都是按照最新的标准进行解析的。而在兼容模式下,浏览器会以向后兼容的方式来模拟老式浏览器的行为,以保证一些老的网站的正确访问。 2. 标准模式与兼容模式个有什么区别?   标准模式的渲染方式和JS引擎的解析方式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。 3. HTML5为什么只需要写,而不需要引入DTD?   HTML5 不基于 SGML,因此不需要对 DTD 进行引用,但是需要 DOCTYPE 来规范浏览器的行为(让浏览器按照它们应该的方式来运 行)。   而 HTML4.01 基于 SGML ,所以需要对 DTD 进行引用,才能告知浏览器文档所使用的文档类型。 4.SGML、HTML、XML和XHTML的区别?   SGML 是标准通用标记语言,是一种定义电子文档结构和描述其内容的国际标准语言,是所有电子文档标记语言的起源。   HTML
  • BeautifulSoup 在 Amazon EC2 机器上表现不同(BeautifulSoup behaves differently on Amazon EC2 machine)
    问题 我正在运行以下脚本: from bs4 import BeautifulSoup import urllib2 import sys print sys.version url = 'https://www.google.com/finance' page = urllib2.urlopen(url).read() soup = BeautifulSoup(page) trends_tag = soup.find('div', {'id': 'topmovers'}) tags = trends_tag.find_all('td', 'change chg') print len(tags) tag = tags[0] print 'Tag: ' + tag.text 在我的电脑上,输出是: 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] 11 Tag: 33.24% 在 EC2 机器上,输出为: 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] 11 Tag: 33.24% 12.18B CLX The Clorox Co 7.35% 11.67B THOR Thoratec Corporation 6
  • How does git-svn behave with svn repositories that have changed layout?
    This question is similar to this one and this one, but the scenario is slightly more complex. I started out a few years ago with a private svn repository (which I use mainly for shared config files and the like between various machines). I wasn't too careful with the layout of the repository (where branches, go, etc.), so it changed quite a lot over time. This was, of course, a mistake, but it's too late now. More recently, I've migrated it to a more standard svn trunk/branches/tags layout, mainly with svn move commands, but of course the old history is still present in the repository (and is
  • git-svn 如何处理已更改布局的 svn 存储库?(How does git-svn behave with svn repositories that have changed layout?)
    问题 这个问题和this one和this one类似,但场景稍微复杂一些。 几年前我开始使用一个私有的 svn 存储库(我主要用于不同机器之间的共享配置文件等)。 我对存储库的布局不太小心(分支、去哪里等),所以随着时间的推移它发生了很大的变化。 这当然是一个错误,但现在为时已晚。 最近,我将它迁移到更标准的 svn 主干/分支/标签布局,主要是使用 svn move 命令,但当然旧历史仍然存在于存储库中(坦率地说,有点混乱) . 我现在想将其永久转换为 git 存储库。 我尝试过使用 git-svn,但它似乎只能处理遵循一致的主干/分支/标签约定的情况(是的,您可以提供替代名称,但似乎每个名称只能提供一个)。 我的存储库的很多历史记录在存储库的根目录中都有有效的主干,例如,将标签/和分支/作为子目录。 处理这一切的最佳方法是什么? 理想情况下,我希望我最终得到的 git 存储库至少可以以某种方式访问​​所有历史记录,即使分支和标签在 git 中没有正确表示为一流的概念。 更具体地说,svn-git 将如何处理它提供的主干/分支/标签子目录之外的文件? 到目前为止,我的观察是它有时会错过它们(绝对不行),有时会将它们添加到新存储库中。 任何想法将不胜感激。 回答1 根据我的经验,处理此问题的唯一方法是在整个时间段内跟踪存储库的位置,并为项目保留在一个位置的每个时期制作一个单独的
  • Are there any gotchas with this JPA “cached hashCode” pattern?
    I was on #hibernate IRC and somebody shared the following (partial) pattern with me @Entity public MyEntity() { ... primary key, object properties, getters/setters go here ... @Column(nullable=false) private int hashCode; public MyEntity() { hashCode += id; } private final Set<String> tags = Sets.newHashSet(); public void addTag(String tag) { if(tags.add(tag)) { hashCode += tag.hashCode(); } } public void removeTag(String tag) { if(tags.remove(tag) { hashCode -= tag.hashCode(); } } public void hashCode() { return hashCode; } ... http://www.artima.com/lejava/articles/equality.html style equals