黄瓜步骤定义
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/listview1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
<ListView
android:id="@+id/listview2"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
控制台错误:
[12:17:13] E / launcher - 预计错误等于真 [12:17:13] E / launcher - AssertionError:预期false等于true 在D:\ Mercurial \ PromotionFinder \ PromotionFinder \ PromotionFinder.Web \ features \ steps \ cucumber.js:178:31 at elementArrayFinder_.then(C:\ Users \ abhishes \ AppData \ Roaming \ npm \ node_modules \ protractor \ lib \ element.ts:840:22) 在ManagedPromise.invokeCallback_(C:\ Users \ abhishes \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ promise.js:1366:14) 在TaskQueue.execute_(C:\ Users \ abhishes \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ promise.js:2970:14) 在TaskQueue.executeNext_(C:\ Users \ abhishes \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ promise.js:2953:27) 在asyncRun(C:\ Users \ abhishes \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ promise.js:2813:27) 在C:\ Users \ abhishes \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ promise.js:676:7 at process._tickCallback(internal / process / next_tick.js:103:7) [12:17:13] E / launcher - 进程已退出,错误代码为199
量角器配置
Then(/^Submit Button is disabled$/, function (done) {
element(by.buttonText('Search')).isEnabled().then(function (result) {
expect(result).to.equal(false);
done();
});
})
每当断言失败时,测试执行突然停止,并且不会生成测试报告。
我正在使用 量角器版本 - 5,cucumberjs版本2.0.0和chai&amp; chai-as-asseised for assertion
我想要以下信息:
1个场景(1个失败) 5个步骤(1个失败,3个跳过,1个过去)
和result.json创建,以便我可以在teamcity中看到结果。
答案 0 :(得分:1)
我还没有使用过CucumberJS 2.0.0,因为它是RC版本,我在网上看到了一些麻烦。 2.1.0是一个稳定的版本,所以也许可以解决问题。
当我查看你的代码时,我认为这应该可以解决问题。
// With callbacks
Then(/^Submit Button is disabled$/, function(done) {
var searchButton = element(by.buttonText('Search'));
return expect(searchButton.isEnabled()).to.eventually.equal(false).and.notify(done);
});
// With Promises
Then(/^Submit Button is disabled$/, function() {
var searchButton = element(by.buttonText('Search'));
return expect(searchButton.isEnabled()).to.eventually.equal(false);
});
希望有所帮助
答案 1 :(得分:0)
您需要捕获异常。 有两种方法可以做到这一点。 在返回时捕获异常...
Then(/^Submit Button is disabled$/, function (done) {
element(by.buttonText('Search')).isEnabled().then(function (result) {
expect(result).to.equal(false);
done();
}).catch(function(err){
return;
});
});
其他方法是通过在函数定义中添加回调作为参数。
Then(/^Submit Button is disabled$/, function (done, callback) {
element(by.buttonText('Search')).isEnabled().then(function (result) {
expect(result).to.equal(false);
done();
}).catch(function(reason) {
callback(reason);
});
});