Tôi có các bài kiểm tra đơn vị cho dự án của mình. Họ chạy tốt trong Eclipse nhưng thất bại trong kiến với các lỗi:Các thử nghiệm jUnit hoạt động trong Eclipse, nhưng thất bại trong kiến thức - java.lang.RuntimeException: Stub
java.lang.RuntimeException: Stub!
Tôi đã automaticaly tạo build.xml kiến của tôi từ EclipseIDE theo công this bài viết.
file build.xml của tôi:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="main" name="MyProjectJavaTest">
<property environment="env"/>
<property name="junit.output.dir" value="junit"/>
<property name="MyProject.location" value="../MyProject"/>
<property name="debuglevel" value="source,lines,vars"/>
<property name="target" value="1.6"/>
<property name="source" value="1.6"/>
<path id="JUnit 4.libraryclasspath">
<pathelement location="../../../../../winapl/adt-bundle-windows-x86/eclipse/plugins/org.junit_4.8.2.v4_8_2_v20110321-1705/junit.jar"/>
<pathelement location="../../../../../winapl/adt-bundle-windows-x86/eclipse/plugins/org.hamcrest.core_1.1.0.v20090501071000.jar"/>
</path>
<path id="Android 4.2.libraryclasspath">
<pathelement location="../../../../../winapl/adt-bundle-windows-x86/sdk/platforms/android-4.2/android.jar"/>
</path>
<path id="Android Dependencies.libraryclasspath"/>
<path id="Persisted container [com.android.ide.eclipse.adt.DEPENDENCIES for project [MyProject]].libraryclasspath"/>
<path id="MyProject.classpath">
<pathelement location="${MyProject.location}/bin/classes"/>
<path refid="Android 4.2.libraryclasspath"/>
<path refid="Android Dependencies.libraryclasspath"/>
<path refid="Persisted container [com.android.ide.eclipse.adt.DEPENDENCIES for project [MyProject]].libraryclasspath"/>
</path>
<path id="MyProjectJavaTest.classpath">
<pathelement location="bin"/>
<path refid="JUnit 4.libraryclasspath"/>
<path refid="MyProject.classpath"/>
<pathelement location="lib/java-json.jar"/>
<pathelement location="lib/httpcomponents/commons-codec-1.6.jar"/>
<pathelement location="lib/httpcomponents/commons-logging-1.1.1.jar"/>
<pathelement location="lib/httpcomponents/fluent-hc-4.2.5.jar"/>
<pathelement location="lib/httpcomponents/httpclient-4.2.5.jar"/>
<pathelement location="lib/httpcomponents/httpclient-cache-4.2.5.jar"/>
<pathelement location="lib/httpcomponents/httpcore-4.2.4.jar"/>
<pathelement location="lib/httpcomponents/httpmime-4.2.5.jar"/>
</path>
<target name="main" depends="MyProjectJavaTest,junitreport"/>
<target name="MyProjectJavaTest">
<mkdir dir="${junit.output.dir}"/>
<junit fork="yes" printsummary="withOutAndErr">
<formatter type="xml"/>
<test name="my.android.MyProject.api.F1U8GetTermsAndConditions" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.JsonMarshallerTest" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.ParamsTest" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.TP1GetServiceDescriptionTest" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.TP2GetServiceDescriptionLogoTest" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.TP3GetServiceListTest" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.TP4GetServiceLogoTest" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.TP5GetSubscribedServiceInformationTest" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.TP6GetSubscribedServiceListTest" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.TP7SendServiceNotificationTest" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.TP8SubscribeToServiceTest" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.WMClientImplAndHMEIntegrationTest" todir="${junit.output.dir}"/>
<test name="my.android.MyProject.api.WMClientImplTest" todir="${junit.output.dir}"/>
<classpath refid="MyProjectJavaTest.classpath"/>
</junit>
</target>
<target name="junitreport">
<junitreport todir="${junit.output.dir}">
<fileset dir="${junit.output.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${junit.output.dir}"/>
</junitreport>
</target>
</project>
kiến phiên bản: 1.9.2
junit phiên bản: 4.8.2 Công cụ nhà phát triển
Android Xây dựng: v21.0.0-531062
UPD: Tôi gặp lỗi sau:
java.lang.RuntimeException: Stub!
at org.apache.http.params.AbstractHttpParams.<init>(AbstractHttpParams.java:5)
at org.apache.http.params.BasicHttpParams.<init>(BasicHttpParams.java:6)
at my.android.myprojectlib.api.HttpClientProxyImpl.<init>(HttpClientProxyImpl.java:27)
at my.android.myprojectlib.api.HttpMethodExecutorImpl.<init>(HttpMethodExecutorImpl.java:28)
at my.android.myprojectlib.api.HttpMethodExecutorFactory.getHttpMethodExecutor(HttpMethodExecutorFactory.java:21)
at my.android.myprojectlib.api.WMClientImpl.<init>(WMClientImpl.java:66)
at my.android.myprojectlib.api.AbstractWMLibTest.setUp(AbstractWMLibTest.java:31)
UPD2: Đường dẫn lớp học thời gian chạy và xây dựng đường dẫn lớp giống nhau.
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/java-json.jar"/>
<classpathentry kind="lib" path="lib/httpcomponents/commons-codec-1.6.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/MyProjectLibJavaTest/lib/httpcomponents/javadoc.zip!/javadoc"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/httpcomponents/commons-logging-1.1.1.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/MyProjectLibJavaTest/lib/httpcomponents/javadoc.zip!/javadoc"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/httpcomponents/fluent-hc-4.2.5.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/MyProjectLibJavaTest/lib/httpcomponents/javadoc.zip!/javadoc"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/httpcomponents/httpclient-4.2.5.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/MyProjectLibJavaTest/lib/httpcomponents/javadoc.zip!/javadoc"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/httpcomponents/httpclient-cache-4.2.5.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/MyProjectLibJavaTest/lib/httpcomponents/javadoc.zip!/javadoc"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/httpcomponents/httpcore-4.2.4.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/MyProjectLibJavaTest/lib/httpcomponents/javadoc.zip!/javadoc"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/httpcomponents/httpmime-4.2.5.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/MyProjectLibJavaTest/lib/httpcomponents/javadoc.zip!/javadoc"/>
</attributes>
</classpathentry>
<classpathentry combineaccessrules="false" kind="src" path="/MyProjectLib"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Có thể là lỗi classpath, không thể tìm thấy một số triển khai sơ khai theo thời gian chạy. Bao gồm cả stacktrace đầy đủ xin vui lòng. –
@owlstead được thêm vào câu hỏi –
Có thể có một số sự không tương thích giữa thư viện Android và Apache. 'AbstractHttpParams' và' BasicHttpParams' đã không còn được dùng kể từ 4.3. Do đó, nó có thể phụ thuộc vào thứ tự của các thư viện trong đường dẫn lớp. Android có thói quen khó chịu khi vận chuyển các thư viện bị tước đi ... –