2017-03-03 54 views
0

有一个想法来实现'量角器核心',这将被多个项目用于UI测试。此时,我有一个角度项目'project1',其中包含'project1'的e2e测试(黄瓜量角器打字稿)。在未来,我期望'项目2','项目3'...这也是需要UI测试的。所以我想有一个单独的项目,让我们说'量角器核心'可以被任何项目用于开发UI测试。该stucture应该是水木清华这样的:如何实现多个项目的核心量角器框架

  1. 项目1 >>>(有依赖关系 '量角器核心')

    • 功能
    • step_definitions>(访问API,SMTH常见)
  2. 项目2 >>>(具有依赖于 '量角器核心')

    • 特征
    • step_definitions>(访问API,平稳常见)
  3. 项目3 >>>(具有依赖于 '量角器核心')

    • 特征
    • step_definitions> (access to api,smth common)

真的很感谢任何例子,想法,建议!

回答

0

首先,了解量角器不是项目相关的。 您用来执行测试的配置文件将运行您给他的每个文件。就你而言,它可能来自多个项目文件夹。

如果您已经为每个项目配置文件,建立在每个项目上一个新的,并给他的所有项目。 的可能性之一是使用选项“套件”

这里您的配置文件的部分示例(如protractor.conf.js)可能看起来像使用此选项

exports.config = { 
    suites: { 
    project1: ['Project1/tests/e2e/**/*.js'], 
    project2: ['Project2/tests/e2e/**/*.js'], 
    project3: ['Project3/tests/e2e/**/*.js'] 
    }, 
// more option 

您的配置文件需要放在文件夹的顶部。如果没有,根据你想要的结构化文件夹更改路径。 (再次量角器不与项目相关的,它的相关文件)

你运行你的测试是这样的:

protractor protractor.conf.js --suite project1 
# depending on other option you have put in your config file 

这是另一个问题。我不谈论版本控制,但是你需要考虑可维护性。

0

我实际上正在研究一些非常类似的东西。我认为我的情况与你的情况非常相似。

我开始注意到,我们在多个项目中存在重复的页面对象和助手类/函数。我们正在做的是为我们的量角器框架(页面对象,辅助类等)构建一个npm包并将其放置在我们的ProGet服务器上。这样每个团队都可以访问相同的框架,并且可以将它们放到他们的项目中,就像其他npm包一样。每个项目都有它自己的配置和测试,但框架可以在多个项目之间共享,并有助于防止跨多个回购的资源重复。

+0

是的,那正是我想要做的。但是,当我建立新的NPM包时,我得到一个问题如下: (导入,要求,模块,__filename,__dirname){从'量角器'导入{浏览器,元素,由}; SyntaxError:意外令牌导入 我相信你遇到了同样的问题,如果可以,请你提出建议如何解决它? –

+0

我认为你必须使用'require'而不是import语句才能工作,至少我们是这样设置的。除非你想用Babel或类似的东西自己编译它 – tehbeardedone

+0

嘿,如果你在你的项目中使用typescript,我可以请你分享你如何构建npm模块以及如何将它包含到你的项目中的任何示例?使用my * .ts文件导入模块时遇到问题* .js工作正常,但对于* .ts,当export是该文件中的第一行时,它会显示“npm意外的令牌导出”... –