在本文中,我们将给您介绍关于尝试在Eclipse中以调试模式运行ANTJUnit目标的详细内容,并且为您解答在eclipse调试视图中,按什么单步执行的相关问题,此外,我们还将为您提供关于Androi
在本文中,我们将给您介绍关于尝试在Eclipse中以调试模式运行ANT JUnit目标的详细内容,并且为您解答在eclipse调试视图中,按什么单步执行的相关问题,此外,我们还将为您提供关于Android Eclipse调试模式 – 线程、android – 带ADT的Eclipse – JUnit测试未运行EclEmma、eclipse 环境 JUnit 测试框架(junit.framework.* 与 org.junit.*)、java – 在Eclipse下使用Maven运行JUnit测试的知识。
本文目录一览:- 尝试在Eclipse中以调试模式运行ANT JUnit目标(在eclipse调试视图中,按什么单步执行)
- Android Eclipse调试模式 – 线程
- android – 带ADT的Eclipse – JUnit测试未运行EclEmma
- eclipse 环境 JUnit 测试框架(junit.framework.* 与 org.junit.*)
- java – 在Eclipse下使用Maven运行JUnit测试
尝试在Eclipse中以调试模式运行ANT JUnit目标(在eclipse调试视图中,按什么单步执行)
这是我的ANT JUnit目标
<target name="test" depends="compile" > <junit failureProperty="test.failure" > <jvmarg value="-Xdebug" /> <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432" /> <classpath> <pathelement path="${basedir}\..\Core\lib\junit-4.10.jar"/> <pathelement path="${basedir}\..\Suggestion\lib\ssce.jar"/> <pathelement path="C:\Java\javamail-1.4.1\mail.jar"/> <pathelement path="C:\Java\commons-net-2.0\commons-net-ftp-2.0.jar"/> <pathelement path="${basedir}\WebContent\WEB-INF\lib\gson-2.2.1.jar"/> <pathelement path="${tomcatLibs}\servlet-api.jar"/> </classpath> <classpath> <pathelement path="${build}"/> </classpath> <formatter type="brief" usefile="false" /> <test name="com.server.junit.ServerTestSuite" /> <test name="com.junit.DictionaryTestSuite" /> <test name="com.util.junit.SuggestionTestSuite" /> </junit> <fail message="Unit test failed" if="test.failure"/></target>
如果通过Eclipse运行,我的单元测试可以通过,但是如果我通过ANT对其进行洗衣,则单元测试将失败。我希望它在单元测试的中断点停止。从文档中我知道我需要添加这些jvmarg,但是无法使其停止,因此显然我没有将它们放在正确的位置。另外,我认为端口不正确,但是应该使用哪个端口?通过Eclipse调试JUnit时,我不必设置任何调试端口,它可以正常工作
答案1
小编典典您需要忘记片刻,您可以在Eclipse中运行JUnit测试和ANT目标。您需要调试一个恰好具有主类org.apache.tools.ant.Main
并且可以ant
从命令行启动的Java应用程序。
现在有两个选择:您可以创建一个启动配置来调用,org.apache.tools.ant.Main
但是启动配置非常复杂(您将必须复制ant
脚本在启动时所做的所有操作)。
另一种选择是ant
正确配置。就您而言,测试在ant
流程中运行,但是我不知道传递-Xdebug
给Ant本身的简单方法。因此,您必须在新的过程中运行测试。将此添加到junit
任务:
<junit fork="yes" forkmode="once" ...>
jvmarg
否则,参数将被忽略。
下一步是在Eclipse中创建调试配置。本文详细解释了这一点。对于您来说,只有“结论”之前的最后一部分很重要。
Android Eclipse调试模式 – 线程
非常感谢您提供任何信息/帮助!
解决方法
另外,考虑UI编程 – 显示线程通常是一个独立的线程,其他事件由非UI线程调用,因为UI线程上的长时间运行似乎会冻结整个应用程序.
编辑:
为了澄清,并非所有这些线程都被您强有力地调用.有些是由VM本身启动的,有些是由您可能正在使用的某些框架或库启动的,有些是由您启动的 – 其中通常所谓的“主要”主题是最突出的.
EDIT2:
您还可以 – 在任何时候 – 在Debug视图中暂停给定线程并检查其当前堆栈跟踪.这可能会为您提供有关所有这些线程正在做什么的线索.可能是,他们正在等待一个对象(一些游泳池调度员),或者在一个空的阻塞队列或类似的东西上进行轮询.
最好的祝福,H.
android – 带ADT的Eclipse – JUnit测试未运行EclEmma
我目前正在使用Android开发工具插件运行Eclipse Juno,因此我可以开发Android应用程序并对其进行测试.为了获得应用程序的代码覆盖率(最好是Android本身的API),我将Eclemma安装到Eclipse中,但就在我第一次运行它时,它给了我一个错误:
Error while dumping coverage data (code 5013).
Socket closed
我不知道是什么原因引起的,当我查看here时,解决方法似乎没有用,或者我只是不确定它在处理Android SDK时所提到的那些目录.有人处理过类似的问题吗?
解决方法:
最新版本的Eclemma使用Jacoco,据我所知,它不支持离线仪器.
您应该尝试找到一个前Jacoco版本的Eclemma(它仅在一年前工作,http://dtmilano.blogspot.ca/2011/07/eclipse-android-and-emma-code-coverage.html)并尝试在Juno上安装它(不太可能工作)或坚持HTML报告,可以在Eclipse中打开,所以这不是一个大问题.
eclipse 环境 JUnit 测试框架(junit.framework.* 与 org.junit.*)
如下所示,先通过 build path 导入 junit 环境依赖的 jar 包:

1. junit.framework.*
- junit.framework.* 主要类和函数:
- Test
- TestCase
- TestSuite
实现并运行(run as => Java Application,因其有 java 应用所需的入口函数:main 函数)如下的代码:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
public class FileReaderTester extends TestCase
{
private FileReader input = null;
public FileReaderTester(String name)
{
super(name);
}
protected void setUp()
{
try
{
input = new FileReader("data.txt");
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
public void testRead() throws IOException
{
char ch = ''&'';
for (int i = 0; i < 4; ++i)
{
ch = (char)input.read();
}
assertEquals(''d'', ch);
}
protected void tearDown()
{
try
{
input.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
public static Test suite()
{
TestSuite suite = new TestSuite();
suite.addTest(new FileReaderTester("testRead"));
return suite;
}
public static void main(String[] args)
{
TestRunner.run(suite());
}
}
2. org.junit.*
- 待测试的功能类的工作,不依赖任何相关的测试类;
- 可以独立运行;
- 测试类的对象则是待测试的功能类;
- 测试类构造的用例是为了保证待测试的功能类能够如期望的那样运行;
- 测试类构造用例的对象是功能类的某一成员函数;
这种类库层级形式,一般是通过 eclipse 界面操作完成的:
- 完成功能类的开发;
- 右键此待测类:
- new => JUnit Test Case,选择 setUp, tearDown 等上下文函数;
- next => 勾选待测类中的待测函数;
- eclipse 自动生成相关代码;
- 右键 run as => Junit Test
3. references
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
java – 在Eclipse下使用Maven运行JUnit测试
我写了一个简单的JUnit(版本4)测试.我可以从Eclipse运行它,但不能从pom.xml(alt-click,Run as,Maven Test)运行它.我想我需要告诉Maven寻找那个班,但我只是不知道如何.
此外,我在groupId“junit”中找不到JUnit 4:只有版本3.8.1可用.我真的需要为3.x版而不是版本4编写测试?
如何解决这个问题?
想想我是一个新娘与Maven:这正是我是什么.所以请不要说工艺技巧,除非我正确地说明我需要做什么.我几乎没有安装Guava作为依赖,我完全失去了这些概念.
谢谢!
解决方法
您还需要surefire插件来执行测试.
见:http://maven.apache.org/plugins/maven-surefire-plugin/
提示:默认情况下,surefire将查找具有* Test.java命名的文件来查找测试.
我们今天的关于尝试在Eclipse中以调试模式运行ANT JUnit目标和在eclipse调试视图中,按什么单步执行的分享就到这里,谢谢您的阅读,如果想了解更多关于Android Eclipse调试模式 – 线程、android – 带ADT的Eclipse – JUnit测试未运行EclEmma、eclipse 环境 JUnit 测试框架(junit.framework.* 与 org.junit.*)、java – 在Eclipse下使用Maven运行JUnit测试的相关信息,可以在本站进行搜索。
本文标签: