Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js npm包如何可能影响量角器执行的启动前阶段?_Node.js_Npm_Jasmine_Protractor_Jasmine Reporters - Fatal编程技术网

Node.js npm包如何可能影响量角器执行的启动前阶段?

Node.js npm包如何可能影响量角器执行的启动前阶段?,node.js,npm,jasmine,protractor,jasmine-reporters,Node.js,Npm,Jasmine,Protractor,Jasmine Reporters,在查看graphetor-jasmine2-screenshot-reporter npm包中的代码时,我注意到它包含一个beforeLaunch函数,该函数与其他函数一起导出 我知道生命周期阶段按以下顺序运行,所以我的问题是: 当jasmine对象本身在onPrepare阶段之前不可用时,该报告者如何可能影响执行的beforeLaunch阶段 --- beforeLaunch --- onPrepare (set in conf) ***repo

在查看graphetor-jasmine2-screenshot-reporter npm包中的代码时,我注意到它包含一个beforeLaunch函数,该函数与其他函数一起导出

我知道生命周期阶段按以下顺序运行,所以我的问题是: 当jasmine对象本身在onPrepare阶段之前不可用时,该报告者如何可能影响执行的beforeLaunch阶段

--- beforeLaunch           
    --- onPrepare          (set in conf) ***reporters initialized here
      --- jasmineStarted   (set in reporter)
        --- beforeAll
         --- suiteStarted  (set in reporter)
          --- specStarted  (set in reporter)
           --- beforeEach  (set in testFile)
           +++ afterEach   (set in testFile)
          +++ specDone     (set in reporter)
         +++ suiteDone     (set in reporter)
        +++ afterAll
      +++ jasmineDone      (set in reporter)
    +++ onComplete         (set in conf)
+++ afterLaunch
来自量角器的代码-jasmine2-screenshot-reporter

function Jasmine2ScreenShotReporter(opts) {

  this.beforeLaunch = function (callback) {
  };

  this.afterLaunch = function (callback) {
  };

  this.jasmineStarted = function (suiteInfo) {
  };

  this.suiteStarted = function (suite) {
  };

  this.suiteDone = function (suite) {
  };

  this.specStarted = function (spec) {
  };

  this.specDone = function (spec) {
  };

  this.jasmineDone = function () {
  };

  return this;
}

我可能从根本上误解了这里的一些行为,但希望有人能为我解释一下。

量角器使用额外的插件挂钩,并在Jasmine挂钩之外解决这些问题。这些问题通常在量角器的流道中解决。您可以在此处阅读插件:


例如,
onPrepare
plugin在config()中被选中,并由运行程序()执行。这两个引用运行程序的文件用于selenium 4升级分支。查看这些版本更容易,因为它们没有一系列可靠的承诺。

Gragrator使用额外的插件挂钩,并在Jasmine挂钩之外解决这些问题。这些问题通常在量角器的流道中解决。您可以在此处阅读插件:


例如,
onPrepare
plugin在config()中被选中,并由运行程序()执行。这两个引用运行程序的文件用于selenium 4升级分支。查看这些版本更容易,因为它们没有一系列可靠的承诺。

感谢@cnishina提供的信息,阅读这些信息很有帮助。我很难理解为什么插件文件中只列出onPrepare。是什么让它比启动前、启动后或onComplete更独特?这些都是插件挂钩。它们只是发生在量角器跑步者的不同位置。很高兴知道。因此,让我们回到原来的问题,如果所有这些插件挂钩都发生在runner的不同阶段,那么我认为在onPrepare阶段导入的npm包不会影响它之前的任何阶段,例如beforeLaunch?如果是这样的话,那么您能否告诉我,在我上面粘贴的Gragor-jasmine2-screenshot-reporter示例中使用beforeLaunch的目的是什么?是的,如果您的
onPrepare
方法发生在
beforeLaunch
之后(按照上面提供的顺序),在
onPrepare
中添加的任何程序包都不会影响启动前的
。我看到很多记者加入了onPrepare方法,并建议在那里这样做。另外,我最近没有在生命周期挂钩上研究它,因为我没有使用该特性。希望这能有所帮助。谢谢cnishina,所以在我接受这个答案之前,我的最后一个问题是,如果在PreforeLaunch阶段之前无法调用像Gradurator-jasmine2-screenshot-reporter这样的软件包,为什么会导出PreforeLaunch函数呢。你知道这可能是软件包创建者的一个错误,还是仅仅因为它在构建函数时很有用?感谢@cnishina提供的这些信息,阅读起来很有帮助。我很难理解为什么插件文件中只列出onPrepare。是什么让它比启动前、启动后或onComplete更独特?这些都是插件挂钩。它们只是发生在量角器跑步者的不同位置。很高兴知道。因此,让我们回到原来的问题,如果所有这些插件挂钩都发生在runner的不同阶段,那么我认为在onPrepare阶段导入的npm包不会影响它之前的任何阶段,例如beforeLaunch?如果是这样的话,那么您能否告诉我,在我上面粘贴的Gragor-jasmine2-screenshot-reporter示例中使用beforeLaunch的目的是什么?是的,如果您的
onPrepare
方法发生在
beforeLaunch
之后(按照上面提供的顺序),在
onPrepare
中添加的任何程序包都不会影响启动前的
。我看到很多记者加入了onPrepare方法,并建议在那里这样做。另外,我最近没有在生命周期挂钩上研究它,因为我没有使用该特性。希望这能有所帮助。谢谢cnishina,所以在我接受这个答案之前,我的最后一个问题是,如果在PreforeLaunch阶段之前无法调用像Gradurator-jasmine2-screenshot-reporter这样的软件包,为什么会导出PreforeLaunch函数呢。您知道这可能是包创建者方面的错误,还是在构建函数时它很有用?