带有 CoffeeScript 的 Casper require() 不导入外部文件

Casper require() with CoffeeScript not importing external files

我遵循 CasperJS's documentation 关于包含来自主 Casper 测试文件的 .coffee 文件。我的代码如下所示:

home/tests/my_test_file.咖啡:

parameters = require('../parameters')

casper.test.begin "Test ", (test) ->

    home_page = parameters.root_path
    page_to_test = home_page + "my_page_to_test"

    casper.start page_to_test, ->
        test.assertEquals @getCurrentUrl(), page_to_test

    casper.run ->
        test.done()

home/parameters.咖啡:

require = patchRequire global.require

root_path = "http://localhost:1080/"
my_page = "foo"
other_param = "bar"

exports = ->
    {
        'root_path': root_path,
        'my_page': my_page,
        'other_param': other_param
    }

但是,Casper 一直告诉我 page_to_testmy_test_file.coffee 中未定义。

这不是 exports 的正确用法。首先,这里不需要函数,因为您直接访问返回对象的属性。其次,您不能将某些内容直接分配给 exports。这就是 module.exports 的目的。

module.exports = {
    'root_path': root_path,
    'my_page': my_page,
    'other_param': other_param
}

exports.root_path = root_path
exports.my_page = my_page
exports.other_param = other_param

通过将对象分配给 exports (exports = obj),您将覆盖执行实际导出的对象,并且不会导出任何内容。