Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Есть ли простой механизм для создания библиотеки объектов страницы транспортира для совместного использования между проектами?

Автор вопроса: Rodrigo SilveiraОтветов: 2

У меня есть два проекта Angular, которые совместно используют страницы пользовательского интерфейса, и я ищу простой механизм для обмена между ними объектами страниц транспортира.

Я концептуально исследовал использование компонентов Angular, но они не используются в тестах Angular E2E. Я начал и продолжу, исследуя простые модули Typescript, и решил проверить, сделал ли кто-нибудь это.

На данный момент я не писал никакого программного обеспечения.

Ответ будет предлагать или указывать на простой механизм для обмена между ними объектами страницы транспортира.

angularprotractorpageobjects

Ответы

Ответ 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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы