带有 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_test
在 my_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
),您将覆盖执行实际导出的对象,并且不会导出任何内容。
我遵循 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_test
在 my_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
),您将覆盖执行实际导出的对象,并且不会导出任何内容。