How to run a single specific test case when using

2019-01-23 23:45发布

问题:

I am using protractor for angular js testing in my app and have around 19 test cases at the moment, of which one of them is failing

describe('Login page', function() {

beforeEach(function() {
  browser.ignoreSynchronization = true;
  ptor = protractor.getInstance();
});

it('should contain navigation items', function(){
  //test case code here
});

it('should login the user successfully', function(){ 
  //test case code here
})
});

Currently, I run all the test cases. But, how can I run just one test case to debug an issue for example one which is described as "Login page should login the user successfully"?

回答1:

The most recent version (at least) of Protractor supports the usual Jasmine way of doing that: rename a describe() function to ddescribe(), and only the tests inside it will run. Or rename an it() function to iit(), and only this test will run.



回答2:

Jasmine added fit and fdescribe in 2.1 for running single tests or describe blocks.

http://pivotallabs.com/new-key-features-jasmine-2-1/

This feature almost made it in the 2.0 release. Now enough of this functionality is present to support fit and fdescribe for focused spec and suite running.

from 2.1 git lib/jasmine-core/jasmine.js

var jasmineInterface = {
describe: function(description, specDefinitions) {
  return env.describe(description, specDefinitions);
},

xdescribe: function(description, specDefinitions) {
  return env.xdescribe(description, specDefinitions);
},

fdescribe: function(description, specDefinitions) {
  return env.fdescribe(description, specDefinitions);
},

it: function() {
  return env.it.apply(env, arguments);
},

xit: function() {
  return env.xit.apply(env, arguments);
},

fit: function() {
  return env.fit.apply(env, arguments);
},


回答3:

Perhaps you should separate the tests into different suites. Then you can just run: protractor test/protractor-conf.js --suite example