在Windows上运行的量角器测试

时间:2015-06-16 06:16:18

标签: angularjs protractor

我已经挣扎了一段时间,迫使Protractor测试在Windows上运行稳定。相同的测试在Linux环境中运行得非常好,但偶尔会出现在Windows上

  

失败:在页面上找不到Angular   http://localhost:2000/index.html#/app:从未提供角度   resumeBootstrap

我已经通过谷歌搜索找到了几种治疗方法:

browser.executeScript () ->  window.name = "NG_DEFER_BOOTSTRAP!"

所以量角器有点应该等到角度被引导。

除此之外,有一个解决方案明确要求量角器等待角度:

browser.waitForAngular()

但仍然没有运气。

我想也许在某些情况下,窗口可能很慢,无法为量角器渲染页面并将页面超时时间增加到30秒,但它也没有帮助。

顺便说一下,我使用量角器2.1,昨天更新到这个版本,希望这个问题最终能在那里得到解决。

有什么建议吗?

protractor.conf是:

exports.config = {
    baseUrl: "http://localhost:6518/",
    specs: ["./e2e/**/*.coffee"],
    allScriptsTimeout: 30000,
    getPageTimeout: 30000,
    capabilities: {
        "browserName": (process.env.KARMA_BROWSER || "Firefox").toLowerCase()
    },
    framework: "jasmine",
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 60000
    },
    onPrepareCommon: function(customiseDSL) {
        addLibraries({
            "_": "lodash",
            requestify: "requestify"
        });
        addJQueryLocator();

        var reporters = require('jasmine-reporters');

        jasmine.getEnv().addReporter(new reporters.JUnitXmlReporter({
            savePath: 'build/test-results',
            consolidateAll: false
        }));

        customiseDSL();

        Browser.open();
        Browser.setDefaultSize();

        browser.manage().timeouts().setScriptTimeout(30000);

        function addLibraries(libraries) {
            for(var key in libraries) {
                global[key] = require(libraries[key]);
            }
        }

        function addJQueryLocator() {
            By.addLocator("$", function() {
                var selector = arguments[0];
                var using = arguments[1] || document;
                var results = $(using).find(selector);
                var matches = [];
                if (!$.isArray(results)) {
                    matches.push(results.get(0));
                } else {
                    for (var i = 0; i < results.length; ++i) {
                        matches.push(results[i][0]);
                    }
                }
                return matches; // Return the whole array for webdriver.findElements.
            });
        }
    }
};

的index.html

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="dist/libs/css/components.css" media="screen,print"/>
</head>

<body ng-app="Applications">
<div ui-view></div>

<script src="dist/libs/js/components.js"></script>

</body>
</html>

0 个答案:

没有答案