Ember.js - Приемочные тесты UnrecognizedURLError: / tests - PullRequest
0 голосов
/ 22 марта 2019

После недавней миграции Ember CLI с 2.15.0 на 3.7.0 приемочные тесты сильно регрессировали.После запуска qunit codemod , кажется, сохраняется следующая проблема: UnrecognizedURLError: /tests.

Я произвел минимальное воспроизведение проблемы с помощью следующего приемочного теста:

import { module, test } from 'qunit';
import { visit, currentURL } from '@ember/test-helpers';
import { setupApplicationTest } from 'ember-qunit';
import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';


module('Acceptance | poc', function(hooks) {
  setupApplicationTest(hooks);
  setupMirage(hooks);

  test('visiting /poc', async function(assert) {
    await visit('/');

    assert.equal(currentURL(), '/');
  });
});

Это приводит к трем следующим проблемам:

Promise rejected before "visiting /poc": /tests?filter=poc
Source:     UnrecognizedURLError: /tests?filter=poc 
beforeEach failed on visiting /poc: You must call one of the ember-qunit setupTest(), setupRenderingTest() or setupApplicationTest() methods before calling setupMirage()
Source:     Error: You must call one of the ember-qunit setupTest(), setupRenderingTest() or setupApplicationTest() methods before calling setupMirage()
Promise rejected after "visiting /poc": Cannot use 'in' operator to search for 'destroy' in undefined@ 80 ms
Source:     TypeError: Cannot use 'in' operator to search for 'destroy' in undefined

Любой совет будет принят с благодарностью!

1 Ответ

0 голосов
/ 29 марта 2019

Как указывает @jelhan в приведенном выше комментарии, здесь отсутствует проблема test настроек среды в конфигурации environment.js.

Чтобы исправить UnrecognizedURLError, добавление ENV.locationType = 'none' удовлетворяет требованиям testem.

Я также заменил другие переменные окружения, найденные в связанном блоке .

Моя конфигурация тестовой среды теперь выглядит следующим образом:

else if(environment === 'test') {
    ENV.locationType = 'none';
    ENV.APP.LOG_ACTIVE_GENERATION = false;
    ENV.APP.LOG_VIEW_LOOKUPS = false;
    ENV.APP.rootElement = '#ember-testing';
    ENV.APP.autoboot = false;
  }
...