2016-01-20 31 views
0

我爲一家正在開發服務器軟件的公司工作,我的工作是爲該軟件運行自動化測試。最新版本的服務器是使用Java 8構建的,這是由於我們舊的測試框架適合Java 7而引起的問題。我們使用TestNG插件來運行我們所有的測試,但據我所知, TestNG的每個版本都是用java 7編譯的,所以如果我用java 8編譯測試,插件會拋出一個major.minor不支持的52.0錯誤,如果我嘗試使用插件運行它們。另一方面,使用Java 7編譯測試會導致在測試嘗試向服務器發送請求時發生相同的錯誤。如何使用javac跨編譯我的舊測試以與java 8兼容?

如何交叉編譯這些測試,以便它們與TestNG和服務器一起工作?交互工作如下:TestNG調用測試,然後測試調用服務器。

我對這個一點讀了,我想我需要這樣的東西:

的javac -source 1.7 -target 1.8 PROJECTNAME

這是一個可行的辦法?

+0

如果你需要你的編譯類與Java 7一起工作,使用-target 1.7'。 – VGR

+0

TestNG支持Java 7 *或更高版本*,因此它應該可以工作。當然,如果你使用'-target 1.8',你將需要一個1.8 JVM來運行你的測試。關於向服務器發送請求,我們需要更多上下文來了解這些請求可能如何受到目標或JVM版本的影響。 –

+0

我已經嘗試了-target 1.7。它使測試與TestNG插件兼容,但現在它們與服務器本身不兼容。我不能泄露太多細節@Didier L(專有知識和whatnot),但服務器有很多類文件(用java8編譯),測試調用這些類文件中的函數來與服務器交互。 –

回答

0

是的,我在我的一個項目中遇到了同樣的問題。 javac -source 1.7 -target 1.8 projectName對我很好用

相關問題