Ember.js - 验收测试UnrecognizedURLError:/ tests

问题描述 投票:0回答:1

最近将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

任何建议将不胜感激!

ember.js qunit acceptance-testing ember-cli-mirage
1个回答
0
投票

正如@jelhan在上面的评论中指出的那样,这里的问题是缺少test配置中的environment.js环境设置。

要修复UnrecognizedURLError,添加ENV.locationType = 'none'可满足testem的要求。

我还替换了链接的block中找到的其他环境变量。

我的测试环境配置现在看起来像这样:

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;
  }
© www.soinside.com 2019 - 2024. All rights reserved.