我可以使用'ant alltests'命令从hybris平台目录执行测试用例,但不能从eclipse执行。
在eclipse中执行测试用例时出现以下错误->右键单击-> run as -> JUnit test
INFO [main] (junit) [HybrisContextFactory] - Refreshing SpringContext (hybris Application context - junit) took: (29.48 s)
INFO [main] (junit) [HybrisContextFactory] Initializing application Spring ApplicationContext for tenant junit took: (31.27 s)
INFO [main] (junit) [DefaultRMIRegistryService] Unexporting the registry.
de.hybris.platform.core.UninstantiableCoreApplicationContextException: Error creating Spring application context.
at de.hybris.platform.core.AbstractTenant.doStartupSafe(AbstractTenant.java:728)
at de.hybris.platform.core.AbstractTenant.doStartUp(AbstractTenant.java:658)
at de.hybris.platform.core.Registry.assureTenantStarted(Registry.java:639)
at de.hybris.platform.core.Registry.activateTenant(Registry.java:700)
at de.hybris.platform.core.Registry.setCurrentTenant(Registry.java:544)
at de.hybris.platform.util.Utilities.setJUnitTenant(Utilities.java:1472)
at de.hybris.platform.testframework.runlistener.PlatformRunListener.testRunStarted(PlatformRunListener.java:44)
at de.hybris.platform.testframework.ChainingRunNotifierWrapper$1.notifyListener(ChainingRunNotifierWrapper.java:97)
at de.hybris.platform.testframework.ChainingRunNotifierWrapper$SafeNotifier.run(ChainingRunNotifierWrapper.java:239)
at de.hybris.platform.testframework.ChainingRunNotifierWrapper.fireTestRunStarted(ChainingRunNotifierWrapper.java:99)
at de.hybris.platform.testframework.HybrisJUnit4ClassRunner.run(HybrisJUnit4ClassRunner.java:124)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name
是的,这是可能的。
实际上,使用hybris 6.1和eclipse Neon,我可以在GUI中运行hybris项目中的Junit测试,而不会遇到任何麻烦。
要使测试在eclipse中工作,您必须确保
- 您的所有项目都在Eclipse中正确配置(没有错误)
- 所有依赖项都存在于您的工作区
- localextensions.xml文件中所有已配置的扩展都注册在Eclipse JUnit测试配置的类路径中。
要修复最后一点,执行以下步骤
- 打开运行菜单
- 打开运行配置对话框在Run Configurations对话框中,选择您的测试配置
- 进入Classpath选项卡。
- 点击添加项目按钮。
- 在Project Selection对话框中,选择您在localextensions.xml文件中配置的所有扩展名。
来自hybris的其他提示
如果你的Spring配置在启动时没有被引导对于Hybris平台,Spring文件可能不是测试的一部分类路径中。这可能是由于缺少项目造成的类路径,或者不包括Eclipse中的资源文件夹类路径。确保.classpath文件包含以下行:
<classpathentry exported="true" kind="lib" path="resources"/>
关于您的具体问题
这将是伟大的张贴MCVE,因为问题可能是相对于您的具体测试。以上建议可以帮助你。在尝试自己的测试之前,请尝试从hybris成功运行测试。
参考资料及进一步阅读
在SAP Hybris Commerce中测试-检查Eclipse部分
Eclipse工作空间错误-完整指南-包含更多资源来解决Eclipse中的错误
Hybris Testweb前端—如果您想从这个接口测试您的测试,请考虑在
junit tenant
。你必须在eclipse中使用ant, (window> preferences> ant> runtime> ant home>并指定你的ant文件夹在哪里,例如:C:Program FilesAntapache-ant-1.9.1
)
then (window> show view> Other> select ant)
然后在您的ant视图中单击add build files(在ant图标上带有+),这将显示您工作集中的所有项目(必须导入平台扩展),选择platform/build.xml
。
在ant视图中,您将看到所有命令都显示出来,您可以从eclipse而不是命令行执行任何操作。