问题标签 [tycho-surefire-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
891 浏览

junit - SWTBot: Error while running with tycho

We are writing SwtBot test cases for eclipse RCP application, it is working fine in eclipse. Now we are integrating test suite with existing tycho so that while creating product test case can also execute. Pom.xml created for SWTBot test suite is mentioned below:

We have also include the SWTBot Module in parent pom.xml and it looks like mentioned below:

we are getting below error while tycho try to execute SWTBot test cases

In the log file it is not able to resolve the application plugins dependency. Here is the contents of log file:

Please let me know what is wrong with the configuration?

0 投票
1 回答
1248 浏览

maven - 尝试使用 Tycho 启动 SWTBot 测试套件时出现“意外错误(返回代码 -1)”

我们正在为我们的 Eclipse RCP 应用程序编写 SWTBot 测试。我们的 RCP 应用程序包括 NatTable 组件并具有启用/禁用透视的授权机制。从 Eclipse 启动时,测试套件运行良好。现在我们正在尝试将它与 Tycho 集成。

这是为运行 SWTBot 测试套件创建的 pom.xml:

当我们执行 Tycho 构建以启动 SWTBot 测试套件时,我们遇到以下错误:

[错误] 无法在项目 com.tsystem.rvs.client.gui.swtbot.test 上执行目标 org.eclipse.tycho:tycho-surefire-plugin:0.20.0:test (default-test):发生意外错误(返回码 -1)。有关详细信息,请参阅日志。-> [帮助 1]

我的第一个问题是 Tycho 如何在不创建产品的情况下对我们的 RCP 应用程序执行测试?我尝试了几个示例,在这些示例中,测试套件是在创建产品之前执行的。我们有启动屏幕的自定义配置,服务器的登录机制,所以启动 swtbot 测试套件是否需要额外的配置。我们尝试以一种视角和视图启动 RCP 应用程序,它与 tycho 配合良好,但在我们的案例中,tycho 无法启动应用程序。在目标/数据和配置下也没有创建日志文件。

如果产品是在执行 SWTBot 测试套件后创建的,有人可以解释 Tycho 从哪里获取插件来启动应用程序吗?

0 投票
2 回答
3239 浏览

maven - Tycho 无法解析 tycho-surefire-plugin 中配置的依赖项

我第一次在 Eclipse RCP + Maven 项目上工作,我想用 JUnit 对我的包运行一些单元测试。似乎最推荐的方法是创建一个包片段并使用 Tycho 插件之类的东西来解决依赖关系。但是,当我mvn clean verify在我的主 pom 中运行时,它应该运行测试并部署我的应用程序,但我得到了以下错误:

我知道 Maven 找不到“myproject.app.feature.feature.group 1.0.0”,但我不知道它是从哪里得到的,因为它的名称似乎是错误的。

值得一提的是,当我在 Eclipse(而不是 Maven)中运行单元测试时,它可以工作。

这是我的测试片段中的第谷配置:

正如这里所建议的那样,我将该功能添加为依赖项,因为我的测试片段除了其主机之外还需要一些其他捆绑包,所以我期待它能够工作。

有小费吗?我发现的最相似的问题是这个,但这两种解决方案都对我不起作用。

0 投票
1 回答
298 浏览

eclipse - SWTBot 在测试中重新启动 rcp 应用程序

我在创建重新启动 rcp 应用程序的 SWTBot 测试时遇到问题。当我从 Eclipse 运行一组测试时,当 rcp app 重新启动时,它也会重新启动该套件。因此,在重新启动之前已经运行的测试将再次运行。我读到您可以仅使用 Tycho Surefire、bash 运行一系列通过重新启动分隔的测试...我尝试使用 tycho 运行,但是当重新启动测试运行时出现以下错误:

知道为什么会这样吗?仅使用 tycho 运行套件是不够的,我应该在测试实现中进行一些更改吗?

0 投票
1 回答
74 浏览

eclipse - 将插件重新部署到eclipse安装中

我有一个 Eclipse 插件,其中包含使用 SWTBot 开发的 JUnit 测试。

我正在尝试在无条件模式下使用 tycho-surefire-plugin 对 Eclipse 安装运行测试。这是我的 Maven 配置:

我正在使用以下方式运行测试:

一切都很好,除了如果我在我的插件上做一些代码更改,新版本的代码不会部署到 eclipse 安装中。在运行 mvn verify 之前,我正在运行 mvn install 命令。如果我要添加一个新的测试类,我会得到

我有任何我缺少的配置。如何重新部署测试插件?

0 投票
1 回答
1249 浏览

java - 由 Tycho surefire 运行时 OSGi 捆绑包未激活

我有几个在 Eclipse 中构建的 OSGi 包,它们使用普通的清单管理依赖项和使用 Maven Tycho 的外部构建。

在 Equinox 上运行 Eclipse 内的包可以正常工作。用 Tycho 构建它们效果很好。

现在我想使用 Tycho Surefire 来运行集成测试,为此我创建了一个包含一些基本测试的简单测试包。正在测试的包依赖于 OSGi 容器中存在的一些其他包和一些小的启动级别调整,以便正确运行 - 就像我说的,当在 Equinox 上正常运行它们时,包本身启动得非常好。

因此,为了模仿 Tycho Surefire,我在测试包的 pom.xml 中指定了以下内容:

有趣的是,测试失败了。经过一些研究,我发现了如何在失败的测试运行期间/之后访问 OSGi 控制台以进一步调查问题(运行 tycho 测试后的 OSGi 控制台)。

我的发现是,尽管 OSGi 容器中存在所有必要的捆绑包(所有可传递派生的捆绑包和所有手动指定的捆绑包),但只有具有独特<bundleStartLevel>性的捆绑包已启动(当然还有 OSGi 核心捆绑包)。

因此,鉴于上述示例,我的发现是,虽然两者org.hibernate.osgi都已org.hibernate.entitymanager解决,但只有第一个处于“活动”状态。这显然会扰乱整个启动过程,我的猜测是,如果捆绑包按预期启动,测试会运行良好。

当我查看“正常”的 Eclipse-OSGi-Launch 配置时,有一个参数“默认自动启动”默认设置为 true。我在 Tycho Surefire 文档中没有找到类似的内容,但是否有可能为某些捆绑包设置特定的启动级别以某种方式覆盖其他捆绑包的自动启动?至少我不会猜测 Tycho 默认情况下根本不会自动启动任何捆绑包......

我将不胜感激有关如何进一步调查该问题的任何提示,或有关如何让 Tycho 启动我的捆绑包而无需为每个捆绑包指定不同启动级别的任何线索。

0 投票
2 回答
467 浏览

java - Tycho 的每个测试的 JVM 实例 - surefire

长话短说,我们有一些遗留代码由于常量的静态初始化而导致问题。我们的一些测试依赖于此,我们希望将它们隔离到单独的 JVM 实例中。

我知道这在纯 maven 中很容易做到-surefire

理论上,上面的代码应该为每个测试类派生一个新线程。正如我所认为的那样,这应该可以解决我们的问题,因为大概这是该测试正在运行的 JVM 的一个新实例,因此所有静态初始化/类加载都会再次完成。

到目前为止,一切都很好。不幸的是,我们使用的是 tycho-surefire (0.16),它似乎没有这个选项。我的问题是是否有任何技巧可以让我们克服这个问题。

例如,Junit runner provider 的并行选项如何为 tycho 工作?

上面的代码会达到类似的结果吗?是否保证每个测试类都应在其自己的 JVM 中运行?我假设如果我们指定无限线程,如果我们的并行粒度是“类”,线程数将等于测试类的数量。

我希望有人可以帮助我解决这个烂摊子。

+++++++++++++++++++++++++++++++ 一些新发现++++++++++++++++++++ +++++++++++++++

有趣的是,以下选项解决了这个问题。

我真的无法向自己解释为什么会这样。这些选项不会为每个测试类派生一个单独的 JVM。它实际上在同一个 JVM 内的单独线程中运行它。无法分叉 JVM,因为 Tycho 似乎不支持这 - surefire。我们的主要问题源于 eclipse osgi 容器构造,该容器构造是使用导致问题的静态初始化值构造的。是不是这样,当您在 Tycho 中以这种方式并行测试时,它实际上会分叉 JVM 或做一些奇怪的事情来重建 OSGI 容器并重新加载某些类。这可能是问题消失的原因。这一切似乎都很奇怪。我想我应该看看 tycho-surefire 源代码。

0 投票
1 回答
2482 浏览

maven - 是否可以将 tycho-surefire 配置为在测试阶段运行?

我对 Maven 的了解不多,但我了解基础知识。我们正在使用 Tycho 构建 RCP 插件,我想知道为什么 Tycho 使用integration-test阶段来执行捆绑包中的测试。

是否可以将某些类型的测试绑定到test第谷的 Maven 阶段而不是integration-test阶段?

如果是这样,怎么做?

0 投票
3 回答
618 浏览

maven - Travis Maven 构建退出并出现 OutOfMemoryException

我有一个在 Travis (dockerized) 上运行的 maven 构建,它在我的命令行上构建得很好。几天以来,我java.lang.OutOfMemoryError: GC overhead limit exceeded在测试用例中得到了。这总是在 AspectJ 测试用例中发生。

最后一次构建的输出是https://travis-ci.org/dresden-ocl/dresdenocl/builds/53030457

我没有进行任何深入的更改。而且我没有触及应用程序的 AspectJ 部分。我使用 JAVA_OPTS、MAVEN_OPTS 测试了各种东西,甚至在 pom.xml 中为 tycho-surefire-plugin 传递了更多 RAM。没有任何帮助。

我怎样才能摆脱错误并让我的所有测试再次运行?我认为他们改变了导致错误的 Travis 方面的任何内容。

0 投票
1 回答
2405 浏览

maven - Maven tycho-surefire-plugin 失败并返回代码 13

我有一个 OSGI 包,现在想为它创建一个测试包。由于现有的捆绑包使用 Tycho,我还想通过使用 tycho-surefire-plugin 来测试 Eclipse/Tycho-way。

据我了解,测试 Eclipse 方式意味着每个包都有一个包含所有相关测试用例的对应包。

因此,我使用以下 pom 创建了一个新包“xyz.tests”:

我还创建了 tycho/OSGI-projects META-INF/MANIFEST.MF 的其他标准文件

build.properties

和 OSGI-INF/l10n/bundle.properties

然后我写了一个“测试用例”,因为我首先想检查我的 eclipse-test-plugin 是否配置正确

当我将mvn package作为目标运行时,一切都会编译和打包而不会出错。然后我运行mvn integration-test作为目标(这是 tycho-surefire 开始工作的部分)。那里我收到一条错误消息,它没有为我提供有用的信息:

“xyz: Hello/Goodbye World”消息是在我想测试的包启动/停止时打印的消息。这意味着,当捆绑包启动时,我的配置似乎没问题,但在它之后立即发生错误。不幸的是,查看日志文件也没有发现任何有用的信息:

所以我知道发生空指针异常,但我不知道为什么/在哪里。

我认为查看隐藏在“... 28 more”后面的整个错误路径确实会有所帮助,但我不知道如何查看它...

我也不完全确定我是否正确配置了所有内容,因为我发现没有有用的教程,并且或多或少地查看了其他 eclipse 项目的测试代码库。