2012-12-26 81 views
1

我在運行jmockit時出現了問題。 我有使用jmockit模擬的testng測試用例。 我越來越:用Intellij思想初始化Jmockit警告

WARNING: JMockit was initialized on demand, which may cause certain tests to fail; 
please check the documentation for better ways to get it initialized. 
Exception in thread "main" java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:108) 
Caused by: java.lang.NullPointerException 
    at mockit.internal.startup.Startup.redefineMethods(Startup.java:184) 
    at mockit.internal.startup.Startup.redefineMethods(Startup.java:176) 
    at mockit.internal.annotations.MockClassSetup.applyClassModifications(MockClassSetup.java:190) 
    at mockit.internal.annotations.MockClassSetup.redefineMethodsInClassHierarchy(MockClassSetup.java:151) 
    at mockit.internal.annotations.MockClassSetup.redefineMethods(MockClassSetup.java:140) 
    at mockit.Mockit.setUpMocks(Mockit.java:249) 
    at mockit.integration.testng.internal.TestNGRunnerDecorator.<init>(TestNGRunnerDecorator.java:67) 
    at mockit.integration.testng.internal.TestNGRunnerDecorator.registerWithTestNG(TestNGRunnerDecorator.java:60) 
    at mockit.integration.testng.Initializer.<init>(Initializer.java:29) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at java.lang.Class.newInstance0(Class.java:355) 
    at java.lang.Class.newInstance(Class.java:308) 
    at org.testng.internal.ClassHelper.newInstance(ClassHelper.java:48) 
    at org.testng.TestNG.setListenerClasses(TestNG.java:637) 
    at org.testng.TestNG.configure(TestNG.java:1372) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:187) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:173) 
    at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:111) 

這裏是罐子的順序: enter image description here

Here第4部分它告訴什麼是秩序,我想提出這個訂單,但後來仍然得到警告,造成問題。

任何人都知道是什麼問題? 我使用

  • jdk1.6.0_25
  • 的IntelliJ IDEA 11.1.2
  • TestNG的-6.3.1
  • jmockit-0.999.16
+0

是否http://stackoverflow.com/questions/2905735/jmockit-initialization-problem幫助? –

+0

感謝您的回答。答案指向的地方是:定義罐子的順序。我在圖片中定義它。 – Elbek

+0

答案中的問題不僅僅是重新排序JAR,還有更多的建議。特別是,你是否嘗試過其他答案的建議,例如加里羅威的答案? –

回答

0

您正在使用不完整的TestNG的罐子從Maven開始,您需要使用TestNG站點(testng.org/testng-xxx.zip)的完整版本,請參閱此答案以瞭解詳細信息:

+0

我升級了它,但我看到了這個問題。我創建了一個簡單的項目並運行簡單的測試用例@Test public void sub(){Assert.assertEquals(0,4 - 4); },我運行該項目中的代碼,它正在工作。但是當我將這作爲我們項目的一部分運行時,我仍然會遇到問題。爲什麼想法在測試用例中沒有使用jmockit時加載jmockit?感謝提供支持的人 – Elbek

+0

請將[提交問題](http://youtrack.jetbrains.net/issues/IDEA)與示例項目重現附件。 – CrazyCoder