草庐IT

Junit-Tests

全部标签

java - 使用套件时的 JUnit 4 @BeforeClass 和 @AfterClass

当使用下面的这种方法时,通过设置带有套件的jUnit。当每个Testclass中的所有@BeforeClass都将在任何测试开始执行之前执行时,我们遇到了问题。(对于每个n个TestClass文件,@BeforeClass运行,然后在它们执行后,它开始执行第一个MyTest.class文件@Test)这将导致我们分配大量资源和内存。我的想法是它一定是错误的,每个@BeforeClass不应该只在执行实际测试类之前运行,而不是在启动套件时运行?@RunWith(Suite.class)@Suite.SuiteClasses({MyTests.class,Mytests2.class,n1

java - 在 Maven 中运行 JUnit 测试,无需构建和复制文件

这个问题在这里已经有了答案:HowcanIatomicallyrunmvntests(withoutrebuildingsourcecode)?(3个回答)关闭6年前。我有一个大型Maven项目,其中包含多个模块。当我想从一个模块运行JUnit测试时,我在包含所有模块的目录中运行“mvn-Dtest=NameOfTesttest”。当我运行这个命令时,Maven会遍历每个模块并尝试编译它(尽管它已经编译),这涉及复制一堆文件并增加测试的总时间。Mavensurefire插件的“测试”命令似乎执行了测试之前的所有步骤。我想知道是否有一种方法可以只执行测试步骤,而不必费心所有尝试的文件编译

java - 使用 jUnit 进行数据驱动测试

您在jUnit中使用什么编写数据驱动的测试?(我的定义)数据驱动测试是从某个外部源(文件、数据库等)读取数据,每行/文件/任何内容执行一个测试,并在测试中显示结果的测试runner就像你有单独的测试一样-每次运行的结果都是单独显示的,而不是一个巨大的聚合体。 最佳答案 在JUnit4中,您可以使用Parameterizedtestrunner进行数据驱动测试。它的文档记录不是很好,但基本思想是创建一个返回对象数组集合的静态方法(使用@Parameters注释)。这些数组中的每一个都用作测试类构造函数的参数,然后可以使用构造函数中设置

java - 基于 JPA 的 JUnit 测试最佳实践

这是一个有点奇怪的问题,但它已经困扰了我几个月了。我已经使用Wicket+Hibernate(使用Maven构建)构建了一个基于JPA的Web应用程序,并且想直接测试DAO层。我创建了一个用于测试的特定src/test/resources/META-INF/persistence.xml文件,但一直与WTP等发生冲突。为了解决这些问题,我创建了一个单独的测试项目,单元测试位于其中。有没有更好的方法来管理JPA项目的单元测试,而无需在持久性文件之间进行决斗?附录:其他测试框架(例如,TestNG)会让这更容易吗? 最佳答案 您不妨试试

java - Maven 有没有像样的 HTML Junit 报告插件?

我发现surefire-report插件非常不适合我的工作方式。我一直在清理项目,我不想每次想在浏览器中查看测试报告时都花费5分钟来重建整个站点。如果我输入mvnsurefire-report:report-only,生成的报告太难看,几乎不可读。我正在寻找类似ant的JUnitReport任务。是否已经有一个可用的? 最佳答案 这就是我的工作:#Runtestsandgenerate.xmlreportsmvntest#Convert.xmlreportsinto.htmlreport,butwithouttheCSSorimag

java - 如何将(JUnit)测试套件导出为可执行jar

在Eclipse(Helios)中有没有办法将我的JUnit测试套件(或者如果可能的话甚至是测试用例)打包/导出为可执行jar包?我知道如何从具有主类的项目中生成可运行的jar,但我不知道如何包含TestRunner。有没有直接的方法,还是我必须以某种方式调用TestRunner的解决方法主类?细节会很棒。 最佳答案 您是正确的,可执行jar需要main()方法。不过,将main方法添加到您的测试套件中很容易。publicstaticvoidmain(String[]args)throwsException{JUnitCore.ma

java - 为什么 Android 上的 JUnit 4 不工作?

正如Android的文档所说,“请注意,Android测试API支持JUnit3代码风格,但不支持JUnit4。”(TestingFundamentals)。应该清楚的是,JUnit4不能在Android中开箱即用。但是为什么会这样呢?是因为测试是在DVM中执行的(因为Android运行时只支持JUnit3)?在JVM上,它自己可以选择应该使用的JUnit运行时。这在DVM中是不可能的吗? 最佳答案 2015/10更新现在可以通过AndroidTestingSupportLibrary中的AndroidJUnitRunner来实现。

java - JUnit @Test 预期的注释不起作用

我有以下测试:@Test(expected=IllegalStateException.class)publicvoidtestKey(){intkey=1;this.finder(key);}但是JUnit报告说,测试失败,尽管它抛出了-正如预期的那样-IllegalStateException。我必须配置其他东西才能运行吗?我现在运行测试@RunWith(Suite.class)@SuiteClasses(Test.class)publicclassTestSuite{}喜欢thisquestion,但仍然没有得到想要的结果。当我删除test前缀时,我仍然收到错误消息。我得说我使用

java - Junit + getResourceAsStream 返回 Null

不确定这怎么可能。我重新阅读了getResourceAsStream,它总是返回null。InputStreamsource=this.getClass().getResourceAsStream("test.xml");Finder中的test.java旁边(使用OSX和Eclipse)是test.xml我可以在TextWrangler中打开它,并将其视为现有数据。这是一个Junit测试,如果它有什么不同的话。我去查看了我们系统上现有的Junit测试,并以与工作示例完全相同的方式使用它(如文件所在的位置和代码本身)。我认为getClass()无法返回正确的路径会有什么细微差别?

java - JUnit 预期标记未按预期工作

我在Eclipse中有以下测试用例,使用拒绝通过的JUnit4。可能出了什么问题?@Test(expected=IllegalArgumentException.class)publicvoidtestIAE(){thrownewIllegalArgumentException();}当尝试使用预期标记测试我自己的代码不起作用时,出现了这个确切的测试用例。我想看看JUnit能否通过最基本的测试。没有。我还按预期使用自定义异常进行了测试,但没有运气。截图: 最佳答案 问题在于您的AnnounceThreadTest扩展了TestCas