2017-06-01 76 views
-1

在执行我的脚本时,立即所有步骤显示为在控制台中传递,然后执行我的实际脚本。即使在每一步都回复了承诺。在量角器黄瓜执行前显示的所有步骤

特性文件:

Feature: Running Cucumber with Protractor 

Scenario: To verify the Search result 
    Given I am on home page 
    When I enter search value 
    Then I verify the search page 

步骤定义:

var chai = require('chai'); 
var chaiAsPromised = require('chai-as-promised'); 
var expect = chai.expect; 
chai.use(chaiAsPromised); 

module.exports = function() { 
    this.Given(/^I am on home page$/, function() { 
    browser.get(browser.baseUrl); 
    return browser.driver.getTitle().then(function(pageTitle) { 
    expect(pageTitle).equal('Online Shopping Site for Mobiles, Fashion, Books, Electronics, Home Appliances and More'); 
}); 
}); 

this.When(/^I enter search value$/, function() { 
    return element(by.name('q')).sendKeys('iPhone 4s'); 
}); 

this.Then(/^I verify the search page$/, function() { 
    browser.sleep(1000); 
    return expect(element(by.className('KG9X1FUs7BSJ3tl0huXbH')).isPresent()).to.eventually.equal(true);  
    }); 
} 

,并且输出显示为: enter image description here

+0

的可能的复制[量角器黄瓜BDD执行测试之前显示通行证(https://stackoverflow.com/questions/38405184 /量角器 - 黄瓜 - bdd - 测试 - 显示通过执行前) – wswebcreation

回答

1

有被标记为绿色的,因为你没有解决的承诺。您已选择在您的设置中不返回callback,而是返回承诺。这意味着每一行代码都应该返回一个承诺。

如果你改变你的代码到承诺你会得到这个

var chai = require('chai'); 
 
var chaiAsPromised = require('chai-as-promised'); 
 
var expect = chai.expect; 
 
chai.use(chaiAsPromised); 
 

 
module.exports = function() { 
 
    this.Given(/^I am on home page$/, function() { 
 
    browser.get(browser.baseUrl); 
 
    return expect(browser.driver.getTitle()) 
 
     .to.eventually.equal('Online Shopping Site for Mobiles, Fashion, Books, Electronics, Home Appliances and More'); 
 
    }); 
 

 
    this.When(/^I enter search value$/, function() { 
 
    return element(by.name('q')).sendKeys('iPhone 4s'); 
 
    }); 
 

 
    this.Then(/^I verify the search page$/, function() { 
 
    browser.sleep(1000); 
 
    return expect(element(by.className('KG9X1FUs7BSJ3tl0huXbH')).isPresent()).to.eventually.equal(true); 
 
    }); 
 
}

+0

嗨是的,我同意了,但在我以前的SD本身,我已经回报了一个承诺。但我仍然面临这个问题。即我在每一步结束时都会回复一个承诺,但仍然面临一个问题。 – KAK

+0

如果我看看您提出的所有问题,我认为您在完整设置中遇到问题。 – wswebcreation

+0

嗯...我dono我错过了...然后让我卸载模块并尝试新的。谢谢你的帮助。 – KAK