好的,因此@Ignore
注释非常适合标记不应运行测试用例。
但是,有时我想忽略基于运行时信息的测试。例如,如果我有一个并发测试需要在具有一定数量内核的计算机上运行。如果此测试是在单处理器计算机上运行的,那么我认为仅通过测试是不正确的(因为尚未运行),并且通过测试并破坏构建肯定不是正确的选择。
因此,我希望能够在运行时忽略测试,因为这似乎是正确的结果(因为测试框架将允许构建通过,但记录未运行测试)。我相当确定注释不会给我这种灵活性,并且怀疑我需要为相关类手动创建测试套件。但是,文档中没有提及任何内容,并且通过API查看还不清楚如何以编程方式完成此操作(即,如何以编程方式创建Test
与@Ignore
注释所创建的实例相同的实例或类似实例?)。
如果有人在过去做过类似的事情,或者对我还能做些什么有一个聪明的主意,那么我很乐意听到。
JUnit的方法是在运行时执行此操作org.junit.Assume
。
@Before
public void beforeMethod() {
org.junit.Assume.assumeTrue(someCondition());
// rest of setup.
}
你可以在@Before
方法中或在测试本身中执行此操作,但不能在@After
方法中执行。如果你在测试本身中执行此操作,则你的@Before
方法将运行。你也可以在内部执行此操作@BeforeClass
以防止类初始化。
假设失败会导致测试被忽略。
编辑:要与junit-ext
的@RunIf
注释进行比较,其示例代码如下所示:
@Test
public void calculateTotalSalary() {
assumeThat(Database.connect(), is(notNull()));
//test code below.
}
更不用说以Database.connect()这种方式从方法中捕获和使用连接要容易得多。
为什么如果我将这个简单的谓词赋给'func'而不是(在我的情况下总是false),我会在忽略条件时获得所有元素,而不是获得0个元素呢? 我想是因为谓词中没有考虑SettingItemModel对象,但我不确定。
当我通过控制台给出zip文件夹路径时,我有一个程序。它将遍历文件夹中的每个项目(每个子项目、子项目的子项目等)。但是如果它遇到一个zip文件夹,它会忽略zip文件夹中的所有内容,我需要读取zip文件夹中的所有内容,包括文件。 以下是贯穿每个项目的方法: 在父zip文件夹内访问的项目(我的控制台输出): 正如你所看到的程序只去直到2021-11-23_103518.zip,并在另一条路径之后,但20
问题内容: 如何获取所有条目? 问题答案: 请参阅Gson用户指南- 空对象支持 : Gson中实现的默认行为是忽略空对象字段。这允许更紧凑的输出格式。但是,当JSON格式转换回其Java形式时,客户端必须为这些字段定义默认值。 这是配置Gson实例以输出null的方法:
有时,我们编写的代码并没有准备就绪,并且测试用例要测试该方法/代码是否失败(或成功)。 在本示例中,注释有助于禁用此测试用例。 如果使用注释在测试方法上,则会绕过这个未准备好测试的测试用例。 在本教程中,我们将演示如何使用来忽略测试方法。 创建一个Maven项目,其结构如下所示 - pom.xml 依懒包配置 - 创建一个测试类:TestIgnore.java,其代码如下所示 - 运行上面代码,得
主要内容:1 概述,2 创建简单的Maven项目,3 项目包装结构,4 更新pom.xml文件中的JUnit依赖关系,5 创建LoginService.java和LoginServiceTest.java,,6.创建UserService.java和UserServiceTest.java,7 创建测试套件,8 结论1 概述 在本指南中,我们将学习如何一次运行多个测试类。将Suite用作运行程序可以使您手动构建一个包含许多类测试的套件。它等效于JUnit 3.8.x静态Test suite()方
问题内容: 假设您具有以下pyspark DataFrame: 接下来的两个代码块应该做同样的事情-即,如果不是,则返回该列的大写。但是,第二种方法(使用)会产生错误。 方法1 :使用 方法2 :在内部使用 这给了我。为什么调用中的检查似乎被忽略了? 我知道我可以改变我要避免这种错误,但我想知道为什么它的发生。 完整回溯 : 问题答案: 您必须记住,Spark SQL(与RDD不同)不是您所看到的