考虑到Haxe文件定义了一系列这样的类:
import flash.display.MovieClip;
import flash.display.Sprite;
import haxe.unit.TestCase;
class MainTest extends Sprite {
public var testcase:Array<Class<TestCase>> = ???;
}
class TestSprite extends TestCase {
function testBasic() {
var sprite = new Sprite();
sprite.x = 0;
assertEquals(sprite.x, 0);
}
}
class TestMovieClip extends TestCase {
function testMovieClip() {
var mc = new MovieClip();
mc.nextFrame();
assertEquals(mc.currentFrame, 2);
}
}
有没有一种方法可以获取所有辅助类的列表(例如:TestSprite
和TestMovieClip
)?最好在运行时,但是返回一个宏的宏也Array<Class<TestCase>>
可以正常工作。
我有一个小的宏帮助程序库,称为compiletime,可以将包中的所有类或扩展某个类的所有类获取。
haxelib install compiletime
然后按基类或按包获取类:
var testcases = CompileTime.getAllClasses("my.package");
var testcases = CompileTime.getAllClasses(TestCase);
var testcases = CompileTime.getAllClasses("my.package",TestCase); // Both!
现在,通过包装而不是模块来获取它们。按模块获取它可能会起作用,但我不确定。但是,如果要编辑代码的这一部分:
https://github.com/jasononeil/compiletime/blob/master/src/CompileTime.hx#L208
并将其更改为也支持按模块获取,并向我发送拉取请求,我肯定会合并它:)
祝你好运!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句