有没有人知道如何以编程方式启动Eclipse IApplication?
这是一个命令行应用程序,我想为它编写单元测试。
应该这样:
org.eclipse.equinox.app.IApplication app = new myApp();
try {
app.start(???);
} catch (Exception e) {
e.printStackTrace();
}
start方法需要一个IApplicationContext。
我从哪里得到这个?
非常感谢您的帮助
答案 0 :(得分:2)
使用OSGi ApplicationDescriptor服务启动此类应用程序。在Equinox中,org.eclipse.core.runtime.applications
中的每一个都变为ApplicationDescriptor实例。然后,使用ApplicationDescriptor.launch(Map)
方法启动实例。 Eclipse Help提供了非常广泛的简要说明,请务必阅读Eclipsepedia上的应用基数。
答案 1 :(得分:1)
以编程方式启动应用程序进行单元测试似乎不是正确的方法。
相反,您可以编写Eclipse插件测试,并且可以启动所需的OSGi容器,您可以在其中初始化测试。当然,您必须进行一些手动初始化,这与提供相应的测试套件有关 - 但在这种情况下,您可以手动调用代码而不是依赖外部启动过程。
请查看details
的以下常见问题解答条目http://wiki.eclipse.org/FAQ_What_is_a_PDE_JUnit_test%3F。