javascript - 如何通过 phantomjs 可靠地执行利用 requirejs 的 Jasmine 测试?

标签 javascript unit-testing jasmine phantomjs

我正在使用 phantomjs 运行 jasmine 测试。我的 jasmine 测试在 describe block 周围使用 require 以确保加载所有正确的模块。

我的测试不会运行,因为 page.evaluate -> jasmine.getEnv().execute(); 在 requirejs 完成加载模块之前运行。

我想知道是否有人知道解决这个问题的真正好方法。我有一个答案,我将在下面发布,但很想通过其他答案来比较笔记。如果你的更好,我显然会选择它作为答案:)

最佳答案

我做了一些不同的事情——我的 HTML 页面有一个函数,包装在 require() 调用中:

var run_tests = function (specfiles) {
    require(specfiles, function () {
        jasmine.getEnv().execute();
    });
};

然后我 page.evaluate( function (test_specs) { run_tests(test_specs) }, ['test1.spec', 'test2.spec']);

关于javascript - 如何通过 phantomjs 可靠地执行利用 requirejs 的 Jasmine 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12187669/

相关文章:

python - 使用新数据库启动 django unittest

angular - 使用 Jasmine Karma 测试一个分支

javascript - 为什么ajax上传文件不需要在form标签中包含enctype ="multipart/form-data"?

javascript - 在 PHPStorm 的 Javascript 中使用 Smarty

javascript - 使用 Class 而不是 ID(通过 CLASS 而不是 ID 获取元素)

java - JUnit 测试 : object not recreated between parameterized tests

java - 如何对使用 ProcessBuilder 和 Process 的 Java 方法进行单元测试?

javascript - Uncaught ReferenceError : jasmineRequire is not defined

angularjs - karma.conf.js 自动文件排序?

javascript - Three.js - 设置立方体颜色?