今天使用junit測試時,明明使用了@Test ,但就是報異常以下:java
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=testDownload], {ExactMatcher:fDisplayName=testDownload(resource.DownLoadTest)], {LeadingIdentifierMatcher:fClassName=resource.DownLoadTest,fLeadingIdentifier=testDownload]] from org.junit.internal.requests.ClassRequest@515f550a at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:77) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:68) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
源代碼以下:eclipse
@Test public static void testDownload(){ ClientConfig config = new ClientConfig(); config.register(MultiPartFeature.class); Client client = ClientBuilder.newClient(config); client.property("accept", "image/png"); WebTarget target = client.target( "http://localhost:8080/rest.jerseyUpload/rest/file").path("download"); Builder builder = target.request(); // local variables Response response = builder.get(); InputStream inputStream = null; OutputStream outputStream = null; String responseString = null; String filePath = "e:/test/upload/02.jpg"; try { // get response code int responseCode = response.getStatus(); System.out.println("Response code: " + responseCode); if (response.getStatus() != 200) { throw new RuntimeException("Failed with HTTP error code : " + responseCode); } // get response message String responseMessageFromServer = response.getStatusInfo().getReasonPhrase(); System.out.println("ResponseMessageFromServer: " + responseMessageFromServer); // read response string inputStream = response.readEntity(InputStream.class); outputStream = new FileOutputStream(filePath); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } // set download SUCCES message to return responseString = "downloaded successfully at " + filePath; System.out.println(responseString); } catch (Exception ex) { ex.printStackTrace(); } finally { // release resources, if any try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } response.close(); client.close(); } }
後來看了N遍,發現方法裏有有static修飾,由於原來是用main()來測試,故static沒去掉直接用來junit測試,而後試着把static去掉,果真測試正常了。
測試
後來又試下下帶返回值的,即ui
@Test .net
public String testDownload(){return "";}rest
發現運行時同樣報這樣的異常。code
看來junit測試時,發現ip
No tests found matching
異常時,先檢查方法是否是有static修飾,以及是否有返回值。不管哪一個是確定的時,都會報錯。
get