Hi,

I have a module a.d

---------------
struct TestClass
{
    string name;
    string fileName;
}

TestClass[] testClasses;

mixin template UnitTest()
{
    private static string getFileName(string fileName = __FILE__)
    {
        return fileName;
    }

    private static this()
    {
testClasses ~= TestClass(this.classinfo.name, getFileName());
    }
}

and a module b.d
---------------
import std.stdio;
import a;

class MyTest
{
    mixin UnitTest;

    this()
    {
        writeln(getFileName());
    }
}

void main()
{
    new MyTest();
    writeln(testClasses);
}

What I want is to have in the struct array testClasses the file name of module b
to generate an xml report. But the output of this application is

b.d
[TestClass("b.MyTest", "a.d")]

I would have thought __FILE evaluates in both cases to "b.d" as the code is mixed into
module b. Is this the intended behavior?

Kind regards
André

Reply via email to