2017-09-13 65 views
0

我是量角器和javascript的新手。我正尝试使用multiCapabilities并行执行多个测试。但是,当我这样做onPrepare或beforeAll都是每个规格执行一次。有没有办法在所有测试中只执行一次onPrepare和onComplete?量角器在multicapability模式下多次执行onPrepare

我在两种情况下面临这个问题。 1.不同的浏览器。 2.具有多个实例的同一浏览器,如下所示。功能:{browserName:'chrome',shardTestFiles:true,maxInstances:2},在这两种情况下,我在onPrepare下的代码执行两次。我有要求将每个测试的测试结果写入Json文件,并且我正在创建onPrepare中的新文件,并且在使用maxinstances时它会越过写入> 1

+0

这样做会挫败'beforeAll()'的目的。你测试什么不同的功能?只是不同的浏览器? –

+0

我在两种情况下面临这个问题。 1.不同的浏览器。 2.具有多个实例的同一浏览器,如下所示。功能:{ \t \t browserName: '铬', \t \t shardTestFiles:真实, \t \t MAXINSTANCES:2 \t}, 在这两种情况下,我onPrepare下代码执行两次。我有要求将每个测试的测试结果写入Json文件,并且我正在onPrepare中创建新文件,并且当我使用maxinstances> 1时它正在重写。我用onPrepare和beforeAll()尝试了这一点,并得到了相同的结果 –

回答

0

当您运行多角测量测试用例时,能力选项,然后将对您在multi capabilities对象(即Sharded测试)中提到的每组能力执行onPrepare方法。

在你的情况下,你需要在beforeLaunch方法中创建你的测试报告文件。在初始化量角器全局对象之前,此方法仅执行一次。

请参考https://github.com/angular/protractor/blob/master/lib/config.ts#L404了解beforeLaunch方法的更多详细信息。