如何在脚本中只调用一次browser.get?

时间:2015-06-03 17:35:58

标签: javascript angularjs automation jasmine protractor

我是新的量角器,现在我将browser.get(URL)放在第一个'it'语句中,然后我的afterEach语句让浏览器返回主页。

我想知道是否有更好的地方放置browser.get语句以使我的测试更多模块?我尝试将它放在beforeEach语句中,但我不想为我正在运行的每个测试打开一个新的浏览器。是否有更好的地方放置这些先决条件?

欢迎初学者的任何其他提示。

2 个答案:

答案 0 :(得分:1)

如果您只想为套件中的所有测试拨打#!/usr/bin/perl use strict; use warnings; use Cwd qw( abs_path ); use File::Basename; use File::Basename qw( dirname ); my $file_in = dirname(abs_path($0))."/practicecase.txt"; my $file_out = dirname(abs_path($0))."/extracted.txt"; open my $in, "<$file_in" or die "$!"; open my $out, ">$file_out" or die "$!"; print "Extracting inputs\n"; while ( <$in> ) { print $out "$1\n" if / ^ (?:first|second)_word\s+(.+?)$ /x; } close($in); close($out); exit; 一次,请使用beforeAll()

  

browser.get()函数在所有规范之前只调用一次   描述是运行的,并且在所有规范之后调用beforeAll函数   完。这些功能可用于加速测试套件   昂贵的设置和拆解。

afterAll

describe('My page', function() { beforeAll(function() { browser.get('/the/url'); }); it('test 1', function() { // ... }); it('test 2', function() { // ... }); }); 内置于jasmine2。对于jasmine1,有一个第三方jasmine-beforeAll包提供相同的功能。

答案 1 :(得分:0)

您希望以beforeEach方式粘贴browser.get()来电:

&#13;
&#13;
describe('My page', function() {
  beforeEach(function() {
    browser.get('/the/url');
  });

  it('should load', function() {
    // Some verification logic
  });
});
&#13;
&#13;
&#13;