我在运行Ember测试时遇到问题。在每3-5次尝试之后,它会在运行任何测试之前遇到错误。当我在服务器模式下运行时,我可以看到这个输出:
ReferenceError: Can't find variable: EmberENV at http://localhost:7357/3256/tests/index.html?hidepassed, line 42
ReferenceError: Can't find variable: define at http://localhost:7357/assets/test-loader-53146f185443881bff29aab3e80079e2.js, line 3
ReferenceError: Can't find variable: define at http://localhost:7357/assets/tests-a72d35574ec0d1ab014d4af21210a23a.js, line 1
当我查看引用的令人反感的文件时,它们看起来像这样:
/* globals requirejs, require */
(function() {
define("ember-cli/test-loader",
[],
function() {
"use strict";
var moduleIncludeMatchers = [];
var moduleExcludeMatchers = [];
function addModuleIncludeMatcher(fn) {
moduleIncludeMatchers.push(fn);
};
等...
据我所知,define()是requirejs引入的函数,因此看起来它只是在测试开始之前没有加载。知道为什么会这样,如果有任何方法可以确保按正确顺序加载东西吗?
其他重要的事情;这似乎不是个别测试的问题,因为删除它们,尤其是第一个被击中的情况并没有什么不同。看起来它经常在大量检查后开始发生,除此之外,我们从130到174测试,但似乎没有特别奇怪的介绍。我也尝试过删除新代码的部分,但是如果我恢复到之前的版本,它似乎每次都能正常工作。这可能只是代码库变大的问题。
对于依赖项的版本:
EmberCLI: 1.13.13
node: 5.4.1
PhantomJS: 2.1.1
还有什么其他有用的东西?感谢。
答案 0 :(得分:1)
忘了在这里报告它已经修复了我的情况。
首先,此处报告了此问题:https://github.com/ariya/phantomjs/issues/14173,它可能是由css中使用的某些内联导入@import url(...)
引起的。
我的案例中的修复是编写一个忽略网络请求的替代测试运行器,类似于上述问题中建议的@wagenet
。
希望这适用于其他用例。
答案 1 :(得分:0)
我们遇到了同样的问题,并且能够通过在bower.json中将qunit更新为1.20来修复它。
"qunit": "~1.20.0",