2015-07-21 24 views
0

我仍然试图让这个东西启动和运行,我目前的问题是我不能在我所有的测试用例中使用相同的浏览器。例如:摩卡与硒,如何在所有情况下使用浏览器?

describe('Check the website', function() { 
    var driver: Driver = new Driver(); 

it('Check website title', function() { 
    this.timeout(0); 

    driver.Firefox.get("http://google.com"); 
    driver.Firefox.getTitle().then(function(title){ 
     expect(title).to.equal('Google'); 
    }); 
}); 

it('Second test', function() { 
    this.timeout(0); 

    driver.Firefox.get("http://google.bg"); 
    driver.Firefox.getTitle().then(function(title) { 
     expect(title).to.equal('Google24'); 
    }); 
    }); 
}); 

我想在所有测试中使用相同的浏览器,我该怎么做?

如果我在测试用例中放入var driver: Driver = new Driver();一切正常,问题是在第一次测试完成后关闭浏览器,然后再次打开第二次测试,这会花费很多时间。

P.S. Driver是我为初始化浏览器而创建的一个类,我希望它可以在整个项目中使用,我使用的是TypeScript,但我想我会在JS中遇到同样的问题,如何在所有测试用例中使用相同的变量?

回答

-1

我想在所有测试中使用相同的浏览器,我该怎么做?

不要这样做..这是不好的测试设计。

为什么?自动化测试是每个测试的新实例开始的常见做法。测试依赖通常是不被接受的。考虑以下几点:

TestSuite 
    TestCase1 
    TestCase2 
    TestCase3 
    TestCase4 

TestCase2失败..现在34将失败。

开始浏览器很便宜,您应该在共享浏览器之前考虑幂等性和可维护性。

+0

例如:我想有一个检查页面标题的测试,检查是否有几个元素可用,测试检查其他东西(全部在同一个网页上),这些测试可以使用相同的浏览器。我不认为我应该启动3个浏览器只是在同一个网页上检查3件事情。 例如: 描述了(“检查是否所有的登录表单元素存在” ...... 它(“存在X元素”) 它(“这个称号正确”) 它(“一些其他的事情目前“) 等 – Darkbound

+0

那么那些不是测试”案件“,那些是测试”步骤“。你可以有多个步骤(检查)肯定。 – sircapsalot

+0

回到我原来的问题,我如何使用浏览器所有这些步骤?检查我的代码,这是做到这一点的正确方法吗? – Darkbound

相关问题