我一直在玩Intern并让我的测试在浏览器中运行。为了更好地与我当前的工作流程集成,我正试图通过gntnt与phantomjs运行我的测试。但是我的所有尝试都失败了。我一直在看这个问题作为参考Intern WebDriver and PhantomJS,但无法弄清楚使其运作的所有步骤。
首先:是否可以通过grunt和phantomjs运行测试?
一点信息:
如果可以通过grunt和phanomjs进行测试,我将如何进行测试?
我想我必须启动GhostDriver
phantomjs --webdriver=8910
但是,Intern配置中有哪些重要的信息才能使其发挥作用?
define({
proxyPort: 9000,
proxyUrl: 'http://localhost:9000/',
environments: [
{
browserName: 'phantom',
version: '1.9.0',
platform: 'Linux'
}
],
webdriver: {
host: 'localhost',
port: 8910
},
maxConcurrency: 3,
useSauceConnect: false,
// ...
});
环境browserName如何映射到phantomjs?我尝试过使用不同版本和平台(运行Mac 10.7)的browserNames'phantom'和'phanomjs'
实习生的我的Gruntfile部分如下:
intern: {
phantom: {
options: {
config: 'tests/intern',
reporters: ['webdriver']
}
}
}
在没有任何包含浏览器代码输出的测试套件的情况下运行此设置
“ReferenceError: document is not defined
”
node_modules/intern/lib/reporters/webdriver.js:41:19
”
添加浏览器测试会在“ReferenceError: window is not defined
”
src/vendor/jquery/jquery-1.9.1.js:9597:5
”
通过节点运行会产生相同的“window is not defined
”错误。
node node_modules/intern/client.js config=tests/intern
我在做错了什么/在这里失踪了?
答案 0 :(得分:2)
Gruntfile配置存在两个问题:
runType: 'runner'
以针对指定的环境运行测试。webdriver
reporter仅用于浏览器客户端,并在需要时由测试运行器自动指定。您通常不应该直接使用它。您在Gruntfile中指定的报告者应该是您希望测试运行者使用的那个; console
默认值通常是合适的。这两个组合意味着您已配置Intern以尝试使用仅在浏览器中与Node.js客户端内的测试运行器一起工作的报告器,因此出错。一旦纠正,其余的配置应该可以正常运行在PhantomJS上,假设它已经在端口8910的localhost上运行。