2009-06-03 151 views
7

从哪里开始写插件测试?我写了一些玩具插件,并希望开始使用我的插件进行TDD。写eclipse junit插件测试

+0

你会喜欢什么样的功能测试?事实上,JUnit插件测试只是普通的JUnit测试,没有任何特定于Eclipse的测试。唯一的区别是,如果您将JUnit测试作为JUnit插件测试运行,它们将在Eclipse的一个实例中运行。 – 2009-06-03 15:45:34

回答

14

如果您的插件是RCP(富客户端平台)插件,使用SWT,您可以使用SWTBot
这些测试可以封装到JUnit的一个:

Run-as-config-create


如果你的插件是基于OSGi的,你必须知道的OSGi bundle运行它自己的类加载器,因此类似乎不在同一个包里。
请参阅 “Is OSGi the enemy of JUnit tests?

使测试插件一个fragment
一个问题是其他插件无法访问片段中定义的类(如Patrick Paulin在a more detailed discussion about fragments in unit tests中指出的那样)。
另一个问题是,片段中的plugin.xml被忽略。因此,你测试插件无法贡献

从帕特里克的文章:

一个片段看起来很像来自外部的插件。它在工作空间中表现为一个单独的项目,它包含一个描述其内容的清单,它作为一个jar来构建和部署。使片段不同的是,它在运行时为单个主机插件贡献资源。片段中的类因此被主机插件的类加载器加载。

plugin unit test

通过将我们的单元测试中的片段,我们可以提供我们的测试访问类的被测非公共方法。另外,由于源代码和测试代码实际上是同一插件的一部分,因此不存在与非导出包相关的问题。无论是否导出,测试类都可以访问插件中的所有软件包。

这种基于片段的方法的主要缺点是很难将单元测试聚合到主测试套件中。虽然创建包含片段中测试的测试套件很容易,但创建包含多个片段中的测试的套件并不那么容易。


如果你的插件需要只是一些简单的测试,一个JUnit test套件是足够

创建一个新的测试用例BookTest在包test.yourpackage,右键单击该包,然后选择“ New > JUnit Test Case“。

new test case