在Windows中运行Pax-Exam测试时出错

时间:2015-12-14 11:18:02

标签: osgi pax-exam

在Windows中运行Pax-Exam测试时出现以下错误。并发现此问题https://ops4j1.jira.com/browse/PAXEXAM-701

Pax-version 4.7.0和OSGi版本org.eclipse.osgi-3.10.2.v20150203-1939

我们如何克服这个问题?

Caused by: org.osgi.framework.BundleException: Error while renaming bundle file to final location: C:\Users\aruna\AppData\Local\Temp\1450091333855-0\org.eclipse.osgi\5\0\bundleFile
	at org.eclipse.osgi.storage.Storage.getContentFile0(Storage.java:767)
	at org.eclipse.osgi.storage.Storage.getContentFile(Storage.java:743)
	at org.eclipse.osgi.storage.Storage.install(Storage.java:508)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.installBundle(BundleContextImpl.java:146)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.installBundle(BundleContextImpl.java:139)
	at org.ops4j.pax.exam.nat.internal.NativeTestContainer.installAndStartBundles(NativeTestContainer.java:308)
	at org.ops4j.pax.exam.nat.internal.NativeTestContainer.start(NativeTestContainer.java:177)
	at org.ops4j.pax.exam.spi.reactors.EagerSingleStagedReactor.setUp(EagerSingleStagedReactor.java:86)
	at org.ops4j.pax.exam.spi.reactors.EagerSingleStagedReactor.beforeClass(EagerSingleStagedReactor.java:136)
	at org.ops4j.pax.exam.spi.reactors.ReactorManager.beforeClass(ReactorManager.java:448)
	at org.ops4j.pax.exam.testng.listener.PaxExam.runByDriver(PaxExam.java:443)
	at org.ops4j.pax.exam.testng.listener.PaxExam.run(PaxExam.java:308)
	at org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:212)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:652)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:845)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1153)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
	at org.testng.TestRunner.privateRun(TestRunner.java:771)
	at org.testng.TestRunner.run(TestRunner.java:621)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:357)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310)
	at org.testng.SuiteRunner.run(SuiteRunner.java:259)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1199)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1124)
	at org.testng.TestNG.run(TestNG.java:1032)
	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:295)
	at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:84)
	at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:90)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

1 个答案:

答案 0 :(得分:1)

我将做的是以下内容:

  • 在IDE中为vmOptions("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005", "-javaagent:path/to/file-leak-detector.jar=http=19999") 构造函数设置条件断点。条件是消息参数包含“重命名时出错”
  • 应将测试设置为在调试模式下运行,并等待调试器附加
  • 应该将测试设置为以file leak detector代理
  • 开头
  • 开始测试
  • 附加调试器
  • 一旦断点停止寻找 您在检漏仪网页的消息中看到的文件名。在那里你会看到 已创建文件处理程序的线程的堆栈,您将 找到你的错误。

您需要的PAX选项如下:

mongo_url = process.env.OPENSHIFT_MONGODB_DB_URL+process.env.OPENSHIFT_APP_NAME;

如果是PAX错误,请向其团队报告。