我有一个带有单元测试块的类文件,就像这样
class SomeClass {
// class stuff...
unittest {
// unit test stuff...
}
}
当我跑rdmd --main -unittest someclass.d
时没有任何反应。为了好的措施,我确保在单元测试块中有一些失败的断言但是没有任何反应。我错过了什么?
我正在使用rdmd build 20120401在Ubuntu上运行所有这些。
以下是rdmd
--chatty
的输出结果:
rdmd -unittest --main --chatty linkedlist.d
'dmd' '-unittest' '-v' '-o-' 'linkedlist.d' '-I.'
'/tmp/.rdmd-1000/home/david/D_Finger_Exercises/linkedlist.d.6374859E23D5272488D4E396AEDC7BE1'
以下是我一直使用的文件的链接:https://github.com/davidk01/D-Finger-Exercises/
答案 0 :(得分:3)
我无法重现你的错误。这是我的测试代码:
class SomeClass {
// class stuff...
unittest {
import std.stdio;
writeln("unittested");
}
}
上面的代码保存在名为test.d的文件中,我跑了:
rdmd -unittest --main test.d
并将“unittested”打印到stdout。
您可能希望在标志中添加-chatty,以便准确了解如何调用dmd。
答案 1 :(得分:2)
您是否尝试使用-debug标志运行它?
答案 2 :(得分:2)
您的LinkedList
课程是模板化的。为该模板的每个实例化运行unittest
块;即零次。
答案 3 :(得分:1)
您的文件没有main
功能,因此不会运行任何内容。添加main
函数,将按预期调用单元测试。
答案 4 :(得分:0)
尝试重新排序参数。无论出于何种原因,至少对我来说,rdmd只承认dmd参数(-unittest
-I
等),如果它们位于rdmd参数(--main
)之前。我相信在文档中有一个非常简短的提及,但我不确定。