我有两个共享UI页面的Angular项目,正在寻找一种在它们之间共享量角器页面对象的简单机制。
我在概念上探索了使用Angular Components,但它们没有在Angular E2E测试中使用。我开始并将继续探索简单的打字稿模块,并决定检查是否有人这样做了。
在这一点上,我还没有编写任何软件。
答案将建议或指向一种在它们之间共享量角器页面对象的简单机制。
没有限制,你可以做任何适合你的事情。
我有这样的东西
|
+-node_modules
|
+-protractor-+
|
+-app1
|
+-app2
|
+-node_module-+
|
+-page_one
|
+-page_two
然后在我的规格中需要这样的页面
page_one = require("page_one");
如果未指定完整路径,节点将查找您所在node_modules
文件夹。如果没有,找到树上的一个目录并检查那里等,直到找到正确的node_module
我通过在主项目中创建一个 NPM 包来解决这个问题,托管所有共享页面对象:
main project (shown only main files)
|
+ e2e
|
+ shared-page-objects
|
+ index.ts
|
+ package.json
|
+- page-objects
|
+ welcome-page.ts
+ another.page.ts
宿主项目只需导入它们。其他项目安装 NPM 包并简单地导入它们:
import { WelcomePage} from 'shared-page-objects'
...
let wp = new WelcomePage();
...
el = wo.getEl();
... use the el on an assertion