Technical Note/TEST AUTOMATION

maven 프로젝트를 실행하려고 하니 "Unsupported major.minor version 51.0" 와 같은 에러가 났다 


---- 에러 내용 ----

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.16:test (default-test) on project TestAutomationScript: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.16:test failed: There was an error in the forked process

[ERROR] java.lang.UnsupportedClassVersionError: io/appium/java_client/AppiumDriver : Unsupported major.minor version 51.0

[ERROR] at java.lang.ClassLoader.defineClass1(Native Method)

[ERROR] at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)

[ERROR] at java.lang.ClassLoader.defineClass(ClassLoader.java:621)

[ERROR] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)

[ERROR] at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)

[ERROR] at java.net.URLClassLoader.access$000(URLClassLoader.java:58)

[ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:197)

[ERROR] at java.security.AccessController.doPrivileged(Native Method)

[ERROR] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

[ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

[ERROR] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

[ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

[ERROR] at java.lang.Class.getDeclaredMethods0(Native Method)

[ERROR] at java.lang.Class.privateGetDeclaredMethods(Class.java:2484)

[ERROR] at java.lang.Class.privateGetPublicMethods(Class.java:2604)

[ERROR] at java.lang.Class.getMethods(Class.java:1446)

[ERROR] at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:59)

[ERROR] at org.testng.TestRunner.initMethods(TestRunner.java:409)

[ERROR] at org.testng.TestRunner.init(TestRunner.java:235)

[ERROR] at org.testng.TestRunner.init(TestRunner.java:205)

[ERROR] at org.testng.TestRunner.<init>(TestRunner.java:153)

[ERROR] at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:536)

[ERROR] at org.testng.SuiteRunner.init(SuiteRunner.java:159)

[ERROR] at org.testng.SuiteRunner.<init>(SuiteRunner.java:113)

[ERROR] at org.testng.TestNG.createSuiteRunner(TestNG.java:1299)

[ERROR] at org.testng.TestNG.createSuiteRunners(TestNG.java:1286)

[ERROR] at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)

[ERROR] at org.testng.TestNG.run(TestNG.java:1057)

[ERROR] at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:217)

[ERROR] at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:84)

[ERROR] at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:92)

[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)

[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)

[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)


원인을 찾아보니

컴파일때 사용된 JDK버전과 실행시 사용되는 JDK 버전이 다르다고 했다


정말 mvn -version을 하니 java home의 경로가 jdk 1.6을 바라보고 있는것이 아닌가?

.bash_profile에서 java home을 jdk 1.7로 변경하니 문제가 해결되었다