2015-11-06 34 views
2

在每个天赋我有beforeEachafterEach语句。是否有可能在全球范围内添加它以避免规范之间的代码重复?全球beforeEach和afterEach在量角器

+2

您可以根据您的要求使用其中任何一种。 'onPrepare()','onComplete()','onCleanUp()'&'afterLaunch()'。请在这里https://github.com/angular/protractor/blob/master/docs/referenceConf.js#L200 –

+0

@PriyanshuShekhar,您的评论似乎是质量..你要补充一点,作为一个答案。 – sircapsalot

+0

@Michal有人把它作为答案。 –

回答

3

beforeEach()afterEach()的用途功能是添加一个重复代码块,每次启动或完成每个规格时都需要执行(it)。还有其他的方法来添加通用代码,以避免代码重复,这里有几个 -

  • 如果你有一段代码,你将需要开始一个测试套件(describe)之前只运行一次,那么你就可以使用茉莉花提供的功能beforeAll()afterAll()
  • 如果您想要在启动所有测试脚本之前运行一段只需运行一次的代码,请将其添加到onPrepare()onComplete()函数中。
  • 如果你想添加一段代码应该运行量角器已经开始实例化本身,甚至之前或已自行关闭后,再使用beforeLaunchafterLaunch

所以这一切都取决于你想要使用它们的场景。希望它有帮助。

+1

以上都不解决问题的任择议定书,这也是我的:你是怎么运行的每个规格的前一段代码,但只写一次(即没有重复它在每个规格文件)? –

+0

嗨@OvidiuDolha,OP的问题和你的问题的答案实际上是“否”,用隐喻来写,所以我给了几个选项。据我所知,这个功能根本不在茉莉花里。作为解决方法的一部分,您可以创建一个全局函数,然后在每个测试脚本文件的beforeEach()中调用它。 –

+0

罗杰,有道理;) –