`
我是温浩然
  • 浏览: 104283 次
文章分类
社区版块
存档分类
最新评论

cucumber 如何中途退出 scenario

 
阅读更多

产生这个问题的原因如下:

原稿加工 节点 继续 执行,需要进行判断,当条件(1、社内排版)满足,才会执行一排。



而, 想执行 社外排版 流程节点, 原理 类似

因此,代码如下

	this.Then(/^一排$/, function(callback) {
		if(bwzztsBase.sfsnpb =='是') {
			//******************************************************
			//切换iframe 到所有任务中。
			
			//点击 保存并继续
			homePage.startUp(this).click();
			this.drive.sleep(5000);
		}
		callback();
	});
this.Then(/^社外排版$/, function(callback) {
		if(bwzztsBase.sfsnpb =='否') {
			

			//点击 保存并继续
			homePage.startUp(this).click();
			this.drive.sleep(5000);
		}
		callback();
	});

但是,如果想走流程 一校 ,则 有两种情况 分别是 第一个图 中的 红线 和 蓝线。
并且,一校 以下所有 流程节点, 在执行 方法前,都需要 加 一校的判断条件,

即,子方法 想执行,必须满足 父方法 前提条件。
所以,一校 以下所有的方法 都得 满足一校的 前提条件 。。

所以,拆出一校以及一校以下节点,单独做Scenario。

但是,这个 Scenario 有 不执行的情况,所以,需要在 Scenario 中 的 前提条件 ,进行判断 ,如果 满足 走 一校 流程节点, 则继续 执行 当前 Scenario 的方法。

如果不满足一校流程节点,就不应该继续执行以下方法,应该退出。


以上是问题产生的前提条件。

问题解决代码如下:

下面是cucumber 代码

@first
Scenario: 是否有原稿  到   图书定价印数折扣通知单
  When  社内排出原稿
  Then  送社外排出原稿
  Then  原稿加工
  Then  社外排版
  # 一排 流程 下  , 是否直接付型  ,是由  一排选择的二级加急决定。
  Then  一排
  

#一校级以下情况,需要  是社内校对,且  否二级加急前提。因此拆出单独scenario
@first
Scenario: 一校流程
  When  社内校对,并且不是二级加急
  Then  一校
  Then  申请一校付型
  Then  二改
  Then  二校
  Then  三改
  Then  三校
  Then  四改
  Then  四校

首先,拆出 一校 以及 以下 流程节点,单独做成 Scenario 。

然后, When ,并不是流程 节点方法 ,而是 增加的一个判断方法 。

当满足 情况时,会继续执行 ,一校,申请一校付型,等等。

如果不满足条件, 退出当前 Scenario

When 方法代码如下:

	this.When(/^社内校对,并且不是二级加急$/, function(callback) {
		if((bwzztsBase.sfsnpb == '否' && bwzztsBase.sfsnjd == '是' )|| (bwzztsBase.sfsnpb == '是'&& bwzztsBase.ypsfejjj == '否')) {
			console.log('流程执行一校 及其以下流程,有两种情况');
			console.log('1、社外排版,社内校对   即  sfsnpb == "否"  和  sfsnjd == "是"  ');
			console.log('1、一排,一排二级加急   即  sfsnpb == "是"  和  ypsfejjj == "否"  ');
			callback();
		}else{
			callback(new Error('当前流程,并不执行 此 Scenario'));
		}
	});
很简单 ,正常的 流程 是执行 callback();

想退出 ,加一个 Error 就可以了。

所以,当 条件不满足时, 就会退出 当前Scenario 。

继续执行 下面的Scenario 。


这样, 一校 和 一校 以下 的流程节点, 就没有必要 加上很多的 前提判断条件了。

执行 当前Scenario 报错的代码如下:

  @first
  Scenario: 一校流程                                                                                                                                                                                                                                                                                                 
xufei
  √ Given 用户名 "xufei" 密码 "xufei" 登录系统                                                                                                                                                                                                                                                                               
  √ Then 打开我的任务                                                                                                                                                                                                                                                                                                     
  √ Then 打开待办事项                                                                                                                                                                                                                                                                                                     
  √ Then 打开所有任务                                                                                                                                                                                                                                                                                                     
  × When 社内校对,并且不是二级加急                                                                                                                                                                                                                                                                                              
  - Then 一校                                                                                                                                                                                                                                                                                                          
  - Then 申请一校付型                                                                                                                                                                                                                                                                                                      
  - Then 二改                                                                                                                                                                                                                                                                                                          
  - Then 二校                                                                                                                                                                                                                                                                                                          
  - Then 三改                                                                                                                                                                                                                                                                                                          
  - Then 三校                                                                                                                                                                                                                                                                                                          
  - Then 四改                                                                                                                                                                                                                                                                                                          
  - Then 四校                                                                                                                                                                                                                                                                                                          

Failures:

1) Scenario: 一校流程     - features\bw-zzts.feature:82                                                                                                                                                                                                                                                                  
   Step: When 社内校对,并且不是二级加急              - features\bw-zzts.feature:83                                                                                                                                                                                                                                               
   Step Definition: features\step_definitions\bw\bw-zzts-3.step.js:159
   Message:
     Error: 当前流程,并不执行 此 Scenario                                                                                                                                                                                                                                                                                     
         at World.<anonymous> (W:\AutoTestProject\LawEditorial-autotest\features\step_definitions\bw\bw-zzts-3.step.js:166:13)
         at nextTickCallbackWith0Args (node.js:420:9)
         at process._tickCallback (node.js:349:13)

4 scenarios (1 failed, 3 passed)
41 steps (1 failed, 8 skipped, 32 passed)
1m54.785s
>> Exited with code: 1.
Warning: Task "exec:run_chrome" failed. Use --force to continue.

Aborted due to warnings.





分享到:
评论

相关推荐

    Maven 搭建cucumber 简单示例

    Scenario: Search Baidu # D:/workspace eclipse/test/src/test/features/testBaidu.feature:5 Given Go to Baidu home page # TestBaiduStepfs.go_to_Baidu_home_page() When Type the search text "selenium" #...

    cucumber.jar

    Cucumber.jar是一个关键组件,它是自动化测试框架Cucumber的核心库,用于支持行为驱动开发(BDD)中的测试执行。这个JAR文件包含了运行Cucumber测试所必需的类和资源,使得开发者和非技术人员可以通过自然语言编写可...

    intelJ Idea cucumber java Demo

    【IntelJ IDEA与Cucumber Java整合实践】 在软件测试领域,行为驱动开发(Behavior Driven Development, BDD)是一种常用的方法论,它强调通过描述软件的行为来定义需求。Cucumber是一个支持BDD的自动化测试框架,...

    cucumber_配置指南

    Cucumber 是一个流行的 Behavior Driven Development (BDD) 工具,主要在软件开发中用于编写可执行的规范。它支持多种编程语言,包括 Ruby,而这里的配置指南针对的是使用 Ruby 的环境。以下是对配置过程的详细解释...

    cucumber jar包

    Scenario: Successful registration Given I am on the registration page When I enter valid details Then I should see a success message ``` 4. **运行测试**: 使用 JUnit 或其他测试运行器来执行测试。...

    Cucumber Recipes

    You can test just about anything with Cucumber. We certainly have, and in Cucumber Recipes we’ll show you how to apply our hard-won field experience to your own projects. Once you’ve mastered the ...

    The Cucumber book (English Version)

    ### 关于《Cucumber书》(英文版)的知识点概览 #### 一、Cucumber的概念与作用 根据书名及描述,“Cucumber”并非一个简单的应用测试工具,而是一种沟通理念,它能够有效地帮助开发者与客户之间建立更加清晰的...

    cucumber-reporting, Cucumber的HTML报告.zip

    cucumber-reporting, Cucumber的HTML报告 发布 pretty Cucumber 报告这是一个用于在Jenkins构建服务器上发布 Cucumber 报告的Java报告发布者。 它发布了漂亮的html报告,图表显示 Cucumbe

    Cucumber的JavaScript实现Cucumber.js.zip

    Cucumber.js 是 Cucumber 的纯 JavaScript 实现。要求Node.js or io.jsNPMCucumber.js 支持:Node.js 0.8, 0.10, 0.11, 0.12 and io.js (see CI builds)Google ChromeFirefoxSafariOpera 标签:Cucumber

    基于cucumber的BDD实现【java、pythion】

    Gherkin语言的关键词包括Feature(特性)、Scenario(场景)、Given(给定)、When(当)、Then(那么)等。通过Gherkin,可以编写用户故事和验收标准,然后通过Cucumber来将这些规范转化为可执行的测试用例。 Java...

    Cucumber行为驱动开发指南(英文版本)

    Cucumber是一个行为驱动开发(Behavior Driven Development,简称BDD)的工具,它被广泛用于软件开发中以提升项目团队成员之间的沟通效率。根据所给文件内容,我们可以从以下几个方面深入了解Cucumber行为驱动开发的...

    cucumber-groovy-1.1.1.zip

    【标题】:“Cucumber-Groovy-1.1.1.zip” 这个压缩包“cucumber-groovy-1.1.1.zip”包含了Cucumber的一个版本,它是一个自动化测试工具,专为集成行为驱动开发(BDD)到Groovy编程语言中而设计。Cucumber允许...

    nightwatch-cucumber, Nightwatch.js的Cucumber.js 插件.zip

    nightwatch-cucumber, Nightwatch.js的Cucumber.js 插件 cucumber http://mucsi96.github.io/nightwatch-cucumber 问:问问题 。这里模块支持将bdd样式方法用于 跨浏览器 测试:使用 Gherkin 语

    cucumber-java-1.2.4

    cucumber是一种可以使用文本描述语言来执行自动测试用例的工具,cucumber-java.jar通过java编写需要下载这个包

    cucumber-ruby, ruby的Cucumber.zip

    cucumber-ruby, ruby的Cucumber CucumberCucumber 是一种用纯语言编写自动化测试的工具。 因为他们是用普通语言写的,所以你的团队里任何人都可以读到。 因为他们可以以被任何人阅读,你可以以用它们来帮助改善你的...

    cucumber-eclipse-plugin-0.0.23-SNAPSHOT.zip

    Cucumber 是一个强大的自动化测试工具,它支持行为驱动开发(BDD)。在软件开发中,BDD 是一种方法论,它强调从用户的角度来描述软件的功能,使得非技术人员也能理解软件的行为。Cucumber 可以将这些描述转换为可...

    Cucumber diseased leaf image dataset.rar

    Cucumber disease leaf image dataset containing 11 different disease types

Global site tag (gtag.js) - Google Analytics