草庐IT

Java JUnit 参数化错误

我正在创建一个基于JRE6的Java应用程序。我使用JUnit4生成参数化测试。我收到此错误:Theannotation@Parameterized.Parametersmustdefinetheattributevalueonthelinecontainingtheannotation:@Parameterized.Parameters以下是我认为与此问题相关的代码:importstaticorg.junit.Assert.assertEquals;importjava.util.Arrays;importjava.util.Collection;importorg.junit.Be

java - 如何在 Gradle 中为单个测试类并行执行 JUnit 测试

我们有很多使用Spring的集成测试。我们不希望为每个测试创建单独的JVM进程(maxParallelForks选项)或者只在多模块项目中运行并行构建(--parallel)。我们希望单个测试类并行执行测试,就像在Maven中一样http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html和并行选项Theimportantthingtorememberwiththeparalleloptionis:theconcurrencyhappens

java - JUnit4 : Test a shutdown hook is called

我有一个添加关闭钩子(Hook)的方法。我需要测试(通过JUnit)钩子(Hook)中执行的代码是否被调用:publicvoidmyMethod(){Runtime.getRuntime().addShutdownHook(newThread(){@Overridepublicvoidrun(){...codetotest...}});}如何在单元测试中模拟关机? 最佳答案 我认为您无法测试它。相反,只需测试您的代码在调用时是否正确运行(通过单独对其进行单元测试)。然后,相信Java会在正确的时间调用您的代码。即将代码提取到扩展Th

java - JUnit 和 Surefire 并行测试 - ForkCount 和 ThreadCount

我正在使用Surefire插件在Selenium网格上运行Selenium测试来执行测试。就我的测试分割而言,我有几个类(class),其中一些有1个测试,一些有不止一个测试。所以在我的网格上我有30个chromeweb驱动程序,我想在所有类中并行执行所有测试。我已经阅读了如何使用我设置为的parallel参数来执行此操作:maven-surefire-plugin2.17${testSuite}allfalsefalse20${browser_type}然而,这似乎并不能填满我可用的所有Chrome网络驱动程序。如果我然后使用forkCount,例如:20true然后当测试执行第一次

java - 新的 JUnit 4.8.1 @Category 渲染测试套件是否几乎过时了?

给出的问题'HowtorunalltestsbelongingtoacertainCategory?'andtheanswer以下方法是否更适合测试组织?定义包含所有测试的主测试套件(例如使用ClasspathSuite)设计足够的一组JUnit类别(足够意味着每个理想的测试集合都可以通过一个或多个类别来识别)使每个测试符合相关类别根据主测试套件和类别集定义目标测试套件示例:确定速度(慢、快)、依赖性(模拟、数据库、集成等)、功能(填写适用类别)、领域(填写适用类别)等要求每个测试都正确地限定(标记)了一组相关的类别。使用ClasspathSuite创建主测试套件(所有测试都在类路径中

java - 在 JUnit 4 中重用测试实现?

我有一个接口(interface),例如:publicinterfaceThing{FrobResultfrob(FrobInput);}以及我正在尝试测试的该接口(interface)的几个实现(例如NormalThing、ImmutableThing、AsyncThing)。我的许多测试方法实际上是为了确保正确实现接口(interface),因此在每个Thing实现中都是重复的。在JUnit3中,一个常见的解决方案是创建一个基类(扩展TestCase),然后每个实现类都将其子类化。但这是JUnit4的正确方法吗?(我相信)偏好升序的可能替代方案:剪切并粘贴重复的测试方法。一点也不干

java - JUnit 测试未在 Eclipse 中运行

这是Eclipse编辑器的快照。您可以看到测试和JUnit选项卡。当我尝试运行测试时,它显示已终止。有人知道这里发生了什么吗? 最佳答案 在我的例子中,这是因为Eclipse开始使用JUnit5作为测试运行器。我通过转到运行配置并选择较旧的测试运行器解决了这个问题: 关于java-JUnit测试未在Eclipse中运行,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1077397

java - Cobertura 如何与 JUnit 一起工作?

我看不懂Cobertura是怎么和JUnit合作的。据我了解,cobertura修改编译后的字节码并在此字节码中插入它自己的命令。好的。之后,我们运行Junit框架并为其运行我们的测试。谁能解释一下cobertura是在什么时候获得信息的,执行了哪些命令? 最佳答案 Cobertura使用ASM这是一个通用的字节码操作和分析框架。在每一行java代码中,都有3行添加到现有类中,以计算它生成的报告的内容。当Cobertura包含在您的类路径中并正确配置并且您执行单元测试时,它将生成一个名为cobertura.ser的数据文件,该文件用

java - 如何在 Eclipse 中使用 JUnit

我是Eclipse的长期用户,但在JUnit方面却是新手。我有很多java项目,我想开始围绕这些项目中的方法编写测试用例。我只是想知道为此目的设置Eclipse环境的最佳方法。假设我有一个典型的项目,在指定的包中有一个典型的src目录。我如何将测试用例附加到该项目。一些担忧:1.我不希望测试用例成为我在项目上创建的任何构建的一部分。2.我想引用测试套件中的类。是否要在我要测试的包下单独设置一个测试目录?我有单独的测试包吗?执行此操作的最佳方法是什么? 最佳答案 非常简单:将JUnitjar文件拖到或以其他方式放入您的lib文件夹中,

Java Junit 测试 HTTP POST 请求

我需要在不改变方法本身的情况下测试以下方法。该方法向服务器发出POST方法。但是我需要做一个独立于服务器的测试用例。我在将其重定向到本地文件之前测试了类似的方法。但为此,我将协议(protocol)作为文件,主机名作为本地主机,端口作为-1。我的问题是这个方法做了一个帖子并转换为HttpURLConnection和wr=newDataOutputStream(conn.getOutputStream());不会通过http处理本地txt文件。//构造函数publicHTTPConnector(Stringusr,Stringpwd,Stringprotocol,Stringhostna