2
我有一個測試,在Eclipse中完美的工作,但在Gradle失敗。我不知道什麼是錯的。我在Eclipse中使用Java 8。測試在Eclipse中傳遞,但在Gradle中失敗。關於assertThat
提示:
E:\Files\Source\Workspace-Eclipse2\project\src\test\java\com\project\core\domain\TeamUnitTest.java:31: error: no sui
table method found for assertThat(List<User>,Matcher<Collection<Object>>)
assertThat(team.getUsers(), empty());
^
method Assert.<T#1>assertThat(T#1,Matcher<? super T#1>) is not applicable
(actual argument Matcher<Collection<Object>> cannot be converted to Matcher<? super List<User>> by method invocati
on conversion)
method Assert.<T#2>assertThat(String,T#2,Matcher<? super T#2>) is not applicable
(cannot instantiate from arguments because actual and formal argument lists differ in length)
where T#1,T#2 are type-variables:
T#1 extends Object declared in method <T#1>assertThat(T#1,Matcher<? super T#1>)
T#2 extends Object declared in method <T#2>assertThat(String,T#2,Matcher<? super T#2>)
E:\Files\Source\Workspace-Eclipse2\project\src\test\java\com\project\core\domain\TeamUnitTest.java:51: error: no sui
table method found for assertThat(List<User>,Matcher<Collection<Object>>)
assertThat(team.getUsers(), empty());
^
method Assert.<T#1>assertThat(T#1,Matcher<? super T#1>) is not applicable
(actual argument Matcher<Collection<Object>> cannot be converted to Matcher<? super List<User>> by method invocati
on conversion)
method Assert.<T#2>assertThat(String,T#2,Matcher<? super T#2>) is not applicable
(cannot instantiate from arguments because actual and formal argument lists differ in length)
where T#1,T#2 are type-variables:
T#1 extends Object declared in method <T#1>assertThat(T#1,Matcher<? super T#1>)
T#2 extends Object declared in method <T#2>assertThat(String,T#2,Matcher<? super T#2>)
2 errors
:compileTestJava FAILED
測試代碼:
assertThat(team.getUsers(), empty());
很可能是Gradle構建正在使用不喜歡此代碼的早期Java版本進行編譯。通過'gradle -v'檢查顯示哪個JVM版本。 –
@PeterNiederwieser我會試試這個。 – Chad
向Hamcrest 1.3添加顯式依賴並使用JUnit 4.11。 –