кипарис не в состоянии установить локальное хранилище на Трэвис CI - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь настроить CI e2e для автоматизации приложения реакции.
В моем приложении у меня есть ProtectedRoute компонент, который перенаправляет незарегистрированного пользователя на страницу входа в систему:

import React from "react";
import { Route, Redirect } from "react-router-dom";

export const ProtectedRoute = ({ component: Component, ...rest }) => (
  <Route
    {...rest}
    render={props =>
      localStorage.getItem("user") ? (// here it checks if localstorage has "user" key
        <Component {...props} />
      ) : (
        <Redirect
          to={{ pathname: "/login", state: { from: props.location } }}
        />
      )
    }
  />
);

В моем тесте я пытаюсь получить доступ к некоторому «защищенному» маршруту и ​​сделать некоторые проверки на странице.
Как рекомендовано в документации на кипарис - я не вхожу в систему с помощью пользовательского интерфейса, но вместо этого я использую для вызова какой-то командыя создал для входа в систему программно:

beforeEach(() => {
  cy.login(); // the command call
})

describe('dashboard', () => {
  it('should show dashboard page', () => {        
    cy.url().should('include', 'dashboard');
  })
})

Вот команда, она просто создает «пользовательский» ключ внутри localStorage:

 Cypress.Commands.add('login', () => {
    const user =  {"UserName": "Francisco","UserLastName": "DeAssisy"}
    localStorage.setItem('user', JSON.stringify(user))
 }

В моем локальном окружении я могуувидеть прохождение тестов.Но, при запуске travis-CI, я вижу, что тесты постоянно терпят неудачу, потому что URL-адрес "login"
enter image description here Вот мой конфигурационный файл travis:

language: node_js
node_js:
  - 10.13
addons:
  apt:
    packages:
      # Ubuntu 16+ does not install this dependency by default, so we need to install it ourselves
      - libgconf-2-4
cache:
  # cache both npm modules and Cypress binary
  directories:
    - ~/.npm
    - ~/.cache
script:
  - npm run format:check
  - npm run lint
  - npm test
  - node fake-server/server &
  - npm run test:all

Интересный факт: когда я запускаю тесты на странице входа в систему перед тестами на панели инструментов, тесты проходят (поскольку ключ пользователя 'localStorage уже установлен)

Пожалуйста, помогите
Спасибо

...