JUnit 测试监听器– JUnit RunListener示例
AI-摘要
切换
Tianli GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
JUnit 测试监听器– JUnit RunListener示例
监听器通常可以帮助监听我们感兴趣的事件。 这可能有几个原因。 例如,我们添加了监听器以添加特定的日志,在 Java GUI 编程中处理 UI 事件等。
JUnit 还支持通过RunListener类执行测试时添加监听器。 该监听器可用于从改进日志记录到测试特定逻辑的各种目的。
1. JUnit RunListener示例
1.1 JUnit 测试类
我们仅在下面举例说明两个测试类。 我们将监视为这些类编写的测试而打印的日志。
package com.howtodoinjava.junit;
import junit.framework.Assert;
import org.junit.Test;
public class TestFeatureOne {
@Test
public void testFirstFeature()
{
Assert.assertTrue(true);
}
}
package com.howtodoinjava.junit;
import junit.framework.Assert;
import org.junit.Ignore;
import org.junit.Test;
public class TestFeatureTwo {
@Test
public void testSecondFeature()
{
Assert.assertTrue(true);
}
@Test
@Ignore
public void testSecondFeatureIngored()
{
Assert.assertTrue(true);
}
}
1.2 JUnit 测试监听器
让我们编写运行监听器。 该监听器将扩展 JUnit 提供的RunListener类。
我们可以完全不包含任何方法来覆盖任何数量的方法
RunListener类。
package com.howtodoinjava.junit.suite;
import org.junit.runner.Description;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import org.junit.runner.notification.RunListener;
public class ExecutionListener extends RunListener
{
/**
* Called before any tests have been run.
* */
public void testRunStarted(Description description) throws java.lang.Exception
{
System.out.println("Number of tests to execute : " + description.testCount());
}
/**
* Called when all tests have finished
* */
public void testRunFinished(Result result) throws java.lang.Exception
{
System.out.println("Number of tests executed : " + result.getRunCount());
}
/**
* Called when an atomic test is about to be started.
* */
public void testStarted(Description description) throws java.lang.Exception
{
System.out.println("Starting execution of test case : "+ description.getMethodName());
}
/**
* Called when an atomic test has finished, whether the test succeeds or fails.
* */
public void testFinished(Description description) throws java.lang.Exception
{
System.out.println("Finished execution of test case : "+ description.getMethodName());
}
/**
* Called when an atomic test fails.
* */
public void testFailure(Failure failure) throws java.lang.Exception
{
System.out.println("Execution of test case failed : "+ failure.getMessage());
}
/**
* Called when a test will not be run, generally because a test method is annotated with Ignore.
* */
public void testIgnored(Description description) throws java.lang.Exception
{
System.out.println("Execution of test case ignored : "+ description.getMethodName());
}
}
2. JUnit 监听器执行
现在,让我们运行测试并观察监听器的输出。
package com.howtodoinjava.junit.suite;
import org.junit.runner.JUnitCore;
import com.howtodoinjava.junit.TestFeatureOne;
import com.howtodoinjava.junit.TestFeatureTwo;
public class ExecuteWithRunListener
{
public static void main(String[] args)
{
JUnitCore runner = new JUnitCore();
<strong>//Adding listener here</strong>
runner.addListener(new ExecutionListener());
runner.run(TestFeatureOne.class, TestFeatureTwo.class);
}
}
程序输出。
Number of tests to execute : 3
Starting execution of test case : testFirstFeature
Finished execution of test case : testFirstFeature
Starting execution of test case : testSecondFeature
Finished execution of test case : testSecondFeature
Execution of test case ignored : testSecondFeatureIngored
Number of tests executed : 2
显然,添加监听器可通过改进的日志记录支持对测试执行提供额外的控制。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果
