rdmd没有运行单元测试

时间:2012-05-22 02:20:09

标签: unit-testing d

我有一个带有单元测试块的类文件,就像这样

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/

5 个答案:

答案 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)之前。我相信在文档中有一个非常简短的提及,但我不确定。