Get module file path from ModuleInfo

Andre Pany andre at s-e-a-p.de
Thu Jun 6 10:43:39 UTC 2019


On Thursday, 6 June 2019 at 10:16:17 UTC, Jacob Carlborg wrote:
> On Thursday, 6 June 2019 at 04:20:52 UTC, Andre Pany wrote:
>> Hi,
>>
>> I want to enhance a unittest framework to also report the 
>> results in SonarQube Generic Execution format. This format 
>> lists the file paths.
>>
>> The unittest framework loops through the modules and collects 
>> the module name and the unittests:
>>
>> foreach (moduleInfo; ModuleInfo)
>>     {
>>         if (moduleInfo)
>>         {
>>             auto unitTest = moduleInfo.unitTest;
>>
>>             if (unitTest)
>>             {
>>                 testClass.name = moduleInfo.name;
>>                 testClass.test = (o, test) { unitTest(); };
>>                 testClasses ~= testClass;
>>             }
>>         }
>>     }
>>
>> Is there any way to get the module file path (the value 
>> __FILE__ would contain in the modules)?
>>
>>
>> Kind regards
>> André
>
> No, I think you have to use `__traits(getUnitTests)`.
>
>> /Jacob Carlborg

Also __traits(getUnitTests) does not return the module file name.
The approach above is working fine in the d-unit library
(https://code.dlang.org/packages/d-unit)

What do you think does make more sense to make it possible:
- Enhance ModuleInfo 
(https://dlang.org/library/object/module_info.html) with a new 
attribute "string file"
- add a new trait __traits(file, "module name")

Kind regards
André





More information about the Digitalmars-d-learn mailing list