我正在学习Delphi中的TDD,我有一个项目组,其中有两个项目:MyProject和MyProjectsTests。最后一个将负责存储所有单元测试,并使用DUnitX的项目模板。以下是我的项目组的当前结构:
\MyProjectGroup
\MyProject
\Classes
MyClass.pas
\MyProjectTests
\Tests
MyClassTest.pas
在MyClassTest
单元中,如何使用MyClass
中的MyProject
单位?使用CTRL + SHIFT + A热键时,我的IDE会找到该单元并将其添加到uses子句中,但MyProjectTests
将无法编译和报告
未找到单位'MyClass'
显然我需要将它导入MyProjectTests,但是如何?
答案 0 :(得分:3)
虽然调整MyProjectTests的搜索路径是一种有效的方法,但我更喜欢直接将有问题的单元添加到项目中。使用"添加单位"为此命令,或者只是将设备从一个项目拖放到另一个项目。
答案 1 :(得分:-3)
我不建议在项目之间共享单位。
如果多个项目需要使用同一个单元,那么将该单元放在第三个项目中。第三个项目应该是包项目。将该项目的输出目录添加到其他两个项目的库路径中。他们现在应该能够正常使用该单位。您可以选择是否希望使用运行时包构建其他项目。
第三个项目应该是唯一负责编译该单元的项目。为确保不允许该单元的目录出现在任何其他项目的库路径或搜索路径中。编译时,没有其他项目可以访问源代码。 (继续将源目录包含在浏览路径中,这样您仍然可以在调试器中按Ctrl +单击或单步调试源。)设置包的输出目录与源目录不同,然后将该输出目录添加到其他项目'图书馆路径。