我试图了解如何使用’-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.这实际上是更多的选择.