我正在尝试使用 JsTestDriver 为 CoffeeScript / JavaScript实现一个非常基本的单元测试。我有两个文件:
1。) lib / Greeter.coffee
greet = (name) ->
"Hello #{name}"
2。)lib / GreeterTest.coffee
tests = {
"Test 1": -> assertEquals("Hello World!", greet "World")
}
TestCase("Test for introducing the test framework", tests)
我的 jsTestDriver.conf 使用以下行定义了他们的路径:- lib/*.js
但是,在执行测试时,我得到:Total 0 tests (Passed 0; Fails: 0; Errors: 0)
我确信,可以找到测试,因为插入明显的程序错误会导致检测到具体文件中的错误。同时插入警报调用会导致预期的行为:在捕获的浏览器中,我看到警报消息框
我错过了什么吗?如何调试这样的东西?
虽然有以下工作:
TestCase("Test case 1", {
testGreet: ->
greeter = new Greeter
assertEquals("Hello World!", greeter.greet "World")
})
和
class @Greeter
constructor: ->
greet: (name) ->
return "Hello #{name}!"
如果两个文件都位于同一文件夹中,则可以删除@
答案 0 :(得分:3)
请参阅此问题:ReferenceError: CoffeeScript + JsTestDriver + Qunit。你有同样的问题,因为greet =
定义了一个在Greeter.coffee
之外不可见的局部变量。将其更改为window.greet =
或@greet =
。
但是,这并不能解释Total 0 tests
问题。我对JsTestDriver并不熟悉,但在this page上,建议测试名称必须以“test”开头 - 是否可以忽略大写的名称"Test 1"
?尝试将其更改为"test1"
。
答案 1 :(得分:1)
确保当您运行java -jar $JSTESTDRIVER -tests all
时,您在某个目录中作为测试,这应该处理“总0测试”问题。我遇到了同样的问题。