linux-关闭第三方代码的单元测试执行

我试图了解如何使用’-unittest’dmd开关来选择执行其单元测试的文件.

我有一个文件“ a.d”,其中包含一个单元测试块.文件“ a.d”从第三方模块导入(需要文件“ b1.d”,然后是“ b2.d”),这些模块包含自己的单元测试块.

我不想在第三方代码中运行测试:我只想在a.d中运行测试.

如果我先编译第三方代码

dmd -c b1.d b2.d

然后尝试将其与我的代码链接,并复制到

dmd -unittest a.d b1.o b2.o

然后我得到一个错误,说a.d试图导入的b1.d中的模块在一个无法读取的文件中.

谁能告诉我如何做到这一点?

谢谢!

解决方法:

您想做的事是不可能的,因为a.d已导入b1.d和b2.d.这意味着必须将这些模块传递给编译器.

如果要链接某些* .o文件,则更为复杂:您必须编写一个接口(* .so文件就像它们的* .so文件一样),因此使用此机制绕过单元测试不是一个好主意. (尽管这可以工作,但是有点沉重).

任意选择一些单元测试的一种更直接的方法是使用特征getUnitTests.这实际上是更多的选择.

上一篇:以字符串形式编译Java代码


下一篇:无法在CentOS / redhat上编译tcprstat.需要有关GNU Toolkit / bzr的建议