У меня есть два проекта Angular, которые совместно используют страницы пользовательского интерфейса, и я ищу простой механизм для обмена между ними объектами страниц транспортира.
Я концептуально исследовал использование компонентов Angular, но они не используются в тестах Angular E2E. Я начал и продолжу, исследуя простые модули Typescript, и решил проверить, сделал ли кто-нибудь это.
На данный момент я не писал никакого программного обеспечения.
Ответ будет предлагать или указывать на простой механизм для обмена между ними объектами страницы транспортира.
Ответ 1 · Sergey Pleshakov
Никаких ограничений, вы можете делать все, что вам подходит.
У меня есть что-то вроде этого
|
+-node_modules
|
+-protractor-+
|
+-app1
|
+-app2
|
+-node_module-+
|
+-page_one
|
+-page_two
а затем в моих спецификациях требовать, чтобы ваши страницы были такими
page_one = require("page_one");
Если вы не укажете полный путь, узел будет искать node_modules папку, в которой вы находитесь. Если нет, то найденный переходит на один каталог вверх по дереву и проверяет его, пока не найдет нужный node_module
Ответ 2 · Rodrigo Silveira
Я решил эту проблему, создав пакет 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