Unit testing 我应该把Eclipse插件片段的测试代码放在哪里?

Unit testing 我应该把Eclipse插件片段的测试代码放在哪里?,unit-testing,eclipse-plugin,single-source,eclipse-fragment,Unit Testing,Eclipse Plugin,Single Source,Eclipse Fragment,在搜索Eclipse插件测试代码的最佳放置位置时,我发现了几个帖子。大多数都暗示了类似的碎片 我有一个单一来源的插件,它有两个片段,一个用于RCP,一个用于RAP 现在,如果我为测试创建另一个片段,我将无法从测试片段访问RCP片段API 有一个头eclipseextensibleapi,如果设置为true,主机插件将使其片段api可用。但是其他需要它的插件可以使用它,而不是它自己的片段(测试片段) 有人能帮我解决这个问题吗?这个问题是Eclipse约定将测试放在单独的项目中的结果。这种分离的目的

在搜索Eclipse插件测试代码的最佳放置位置时,我发现了几个帖子。大多数都暗示了类似的碎片

我有一个单一来源的插件,它有两个片段,一个用于RCP,一个用于RAP

现在,如果我为测试创建另一个片段,我将无法从测试片段访问RCP片段API

有一个头
eclipseextensibleapi
,如果设置为true,主机插件将使其片段api可用。但是其他需要它的插件可以使用它,而不是它自己的片段(测试片段)


有人能帮我解决这个问题吗?

这个问题是Eclipse约定将测试放在单独的项目中的结果。这种分离的目的是从主项目中排除测试依赖项,如JUnit、模拟框架等。然而,这种推理是基于越来越过时的假设。如果不使用PDE Bug或插件测试,则可以考虑将测试移动到包含源代码的同一个项目中。 我相信单元测试属于项目的源代码,不应该分开。每个签出源代码的人都应该进行测试

PDE构建 Eclipse插件项目过去是用它来构建的,它从清单文件中读取依赖项,并且不能区分测试范围的依赖项和编译范围的依赖项。虽然PDE构建仍然在IDE内部用于导出,但在大多数Eclipse项目(包括平台本身)中,PDE构建已被替代。Tycho基于Maven,它允许测试范围内的依赖项,而这些依赖项最终不会进入构建的工件中

如果将测试移动到主项目中,则可以将测试依赖项添加到项目生成路径中,或者查看是否可以使用来管理依赖项

插件测试 导致测试分离的另一个假设是,所有测试都作为所谓的插件测试执行。插件测试需要一个运行的OSGi环境,它们可以被认为是比单元测试更多的集成测试。这些测试不需要访问片段的内部,而是使用环境中可用的任何片段测试主机包的功能


普通单元测试不需要OSGi环境,因此它们使用相同的类加载器,因此不需要保存在片段中。如果使用tycho进行构建,则必须使用maven surefire而不是tycho surefire,因为后者将测试作为插件测试执行。

此问题是Eclipse将测试放在单独项目中的约定的结果。这种分离的目的是从主项目中排除测试依赖项,如JUnit、模拟框架等。然而,这种推理是基于越来越过时的假设。如果不使用PDE Bug或插件测试,则可以考虑将测试移动到包含源代码的同一个项目中。 我相信单元测试属于项目的源代码,不应该分开。每个签出源代码的人都应该进行测试

PDE构建 Eclipse插件项目过去是用它来构建的,它从清单文件中读取依赖项,并且不能区分测试范围的依赖项和编译范围的依赖项。虽然PDE构建仍然在IDE内部用于导出,但在大多数Eclipse项目(包括平台本身)中,PDE构建已被替代。Tycho基于Maven,它允许测试范围内的依赖项,而这些依赖项最终不会进入构建的工件中

如果将测试移动到主项目中,则可以将测试依赖项添加到项目生成路径中,或者查看是否可以使用来管理依赖项

插件测试 导致测试分离的另一个假设是,所有测试都作为所谓的插件测试执行。插件测试需要一个运行的OSGi环境,它们可以被认为是比单元测试更多的集成测试。这些测试不需要访问片段的内部,而是使用环境中可用的任何片段测试主机包的功能

普通单元测试不需要OSGi环境,因此它们使用相同的类加载器,因此不需要保存在片段中。如果使用tycho构建,则必须使用maven surefire而不是tycho surefire,因为后者将测试作为插件测试执行