2

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

class SomeClass {
  // class stuff...
  unittest {
    // unit test stuff...
  }
}

当我跑步时,rdmd --main -unittest someclass.d什么也没有发生。只是为了更好地衡量,我确保在单元测试块中有一些失败的断言,但再次没有任何反应。我错过了什么?

我正在使用 rdmd build 20120401 在 Ubuntu 上运行所有这些。

这是rdmdwith的输出--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/

4

5 回答 5

3

我无法重现您的错误。这是我的测试代码:

class SomeClass {
  // class stuff...
  unittest {
    import std.stdio;
    writeln("unittested");
  }
}

将上面的代码保存在一个名为 test.d 的文件中,我运行:

rdmd -unittest --main test.d

并将“单元测试”打印到标准输出。

您可能希望将 --chatty 添加到标志中,以便准确了解 dmd 是如何被调用的。

于 2012-05-22T15:07:44.190 回答
2

您是否尝试使用 -debug 标志运行它?

于 2012-05-22T14:41:22.860 回答
2

您的LinkedList课程是模板化的。该unittest块针对该模板的每个实例化运行;即零次。

于 2012-08-30T03:07:43.863 回答
1

您的文件没有main功能,因此不会运行。添加一个main函数,您的单元测试将按预期调用。

于 2012-05-22T02:28:15.660 回答
0

尝试重新排序参数。无论出于何种原因,至少对我而言,rdmd 仅-unittest -I在 rdmd 参数 ( ) 之前才承认 dmd 参数 ( etc --main)。我相信在文档中有一个非常简短的提及,但我不确定。

于 2012-05-22T04:28:17.723 回答