2015-04-01 29 views
1

我有一个在intern-geezer中运行的测试循环,成功运行了几百次非常相似的测试中有大约20个。然后突然:实习生 - 窗口未定义

FATAL ERROR 
ReferenceError: window is not defined 

并且循环停止。在我的代码中没有对windowdocument的明确调用。这是纯粹的JS。我正在使用实习生,2.2.2。错误堆栈中引用的行号绝对没有意义。他们走了。

我读过的建议,从主交换机:

./node_modules/.bin/intern-client config=tests/intern 

到:

./node_modules/.bin/intern-runner config=tests/intern 

,但我不希望连接到服务器或打开浏览器(有一个单独,奇怪的加载错误发生在那里似乎特定于geezer)。我想通过命令行来解决这个问题。感谢任何帮助,我对实习生是全新的。

+0

只是出于好奇,你为什么要使用奇特的,如果你只是想运行在节点客户端测试? Geezer只能在旧版浏览器中运行测试。 – jason0x43 2015-04-01 13:59:58

+0

嗯,我最终希望能够在旧IE中运行测试。首先,我想要基本的单元测试工作。 – Ben 2015-04-01 16:23:31

回答

1

window是一个浏览器对象,所以它不会在Node中可用。如果要在节点客户端(intern-client)中独占运行测试,则需要确保没有使用任何引用浏览器对象的代码(例如document,window,navigator等),并且没有使用您的依赖关系

如果堆栈跟踪行号已关闭,则可能是代码覆盖率检测。您可以通过将Intern config中的excludeInstrumentation属性设置为/./来禁用该属性。

+0

我的代码(或我的一个依赖项)都不会调用窗口,文档或导航器。测试非常相似。为什么有些人会跑而不是其他人呢?这不是一个语法错误。我花了整整一个下午的时间来测试这些测试,并尝试评论各种组合。 – Ben 2015-04-01 16:35:57

0

你可能设置“HTML”作为记者在实习生的配置文件:

intern.reporters = [ 
    { id: 'Html' }, 
    { id: 'JUnit', filename: 'test-reports/quality/functional/junit.xml' }, 
    ..., 
];