【问题标题】:How can you wait until com.sun.codemodel.JCodeModel.build() has completed你怎么能等到 com.sun.codemodel.JCodeModel.build() 完成
【发布时间】:2014-09-10 08:20:24
【问题描述】:

我正在使用com.sun.codemodel.JCodeModel 生成近 1000 个类,每个类都有关联的 JUnit。

我还生成了一个执行单个 JUnit 测试用例的 JUnit 测试套件。

为了完成这个代码生成项目,我想使用 final Result result = JUnitCore.runClasses(AllTests.class); 以编程方式执行 JUnit 测试套件。

我遇到的困难是 JUnit 测试套件的执行与代码生成不同步。我需要能够检测到com.sun.codemodel.JCodeModel.build() 方法何时完成了我的代码生成,然后才执行 JUnit 测试套件。

我如何知道com.sun.codemodel.JCodeModel.build() 方法何时完成?

【问题讨论】:

  • 您如何执行与 JUnit 测试相关的 JCodeModel 代码生成?

标签: java code-generation sun-codemodel


【解决方案1】:

通过 JCodeModel 扩展你的类,然后重写构建方法:

@override
... build(){
super.build();
startTest();
}

那么它应该在构建功能完成后启动。

【讨论】:

  • 感谢您的建议。然而,这并不能解决我的问题,因为我不仅需要等到所有生成的类都构建完成,我还需要它们已经被编译。我在eclipse中执行这个项目;它开始看起来像我需要以编程方式引用 Eclipse 项目(并等待或完成)或者只是放弃并手动运行测试套件
  • 你可以手动启动编译器... JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); compiler.run(null, null, null, sourceFile.getPath());
猜你喜欢
  • 2011-12-14
  • 2016-05-19
  • 2019-04-06
  • 2014-09-25
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多