当前位置: 首页 > 面试题库 >

自动将测试从JUnit 3迁移到JUnit 4的最佳方法?

龚玄天
2023-03-14
问题内容

我有一帮其扩展TestCase,并希望自动迁移他们是JUnit4测试与注释如JUnit 3班的@Before@After@Test
任何工具都来在大批量运行做到这一点?


问题答案:

我认为这并不难。因此,让我们尝试一下:

0.进口

您需要导入三个注释:

import org.junit.After;
import org.junit.Before;
import org.junit.Test;`

完成接下来的几处更改后,您将不需要import junit.framework.TestCase;

1.注释test*方法

以开头的所有方法都public void test必须在@Test注释之前。使用正则表达式可以轻松完成此任务。

2.注释SetUp和TearDown方法

Eclipse生成以下setUp()方法:

@Override
protected void setUp() throws Exception { }

必须替换为:

@Before
public void setUp() throws Exception { }

相同tearDown()

@Override
protected void tearDown() throws Exception { }

取而代之

@After
public void tearDown() throws Exception { }

3.摆脱 extends TestCase

删除每个字符串文件中恰好出现的一次

" extends TestCase"

4.删除主要方法?

可能有必要删除/重构将执行测试的现有主要方法。

5.将suite()方法转换为@RunWithClass

根据saua的评论,必须对suite()方法进行转换。谢谢,索阿!

@RunWith(Suite.class)
@Suite.SuiteClasses({
  TestDog.class
  TestCat.class
  TestAardvark.class
})

结论

我认为,通过一组正则表达式非常容易,即使它会杀死我的大脑;)



 类似资料:
  • 我已经将我的JUnit4代码迁移到JUnit5,并使用以下版本依赖项。 但我面临的问题是,在迁移到junit5之后,运行它时跳过了TestCase。 我正在使用 在运行时,只需打印下面一行 我的maven版本是 并且不运行测试用例。我面临这个奇怪问题的任何具体原因。之前使用JUnit4的相同测试用例运行良好。 经过进一步分析,我发现命令=>不运行测试用例,并跳过它们。但是当我用=>替换相同的命令时

  • 问题内容: 我需要将数据库从sqlite迁移到mysql,并且各种工具/脚本对我来说太多了,无法轻松找到最安全,最优雅的解决方案。 在我看来,这看起来不错http://djangosnippets.org/snippets/14/,但距获取更新令人担忧,似乎已经过去了三年。 您是否可以推荐一个在Django 1.1.1上可靠的解决方案? 问题答案: 执行: 接下来,将你的settings.py更改

  • null JUnit4中的示例 JUnit5中的示例

  • 自有主机功能提供将您的主机接入 DaoCloud 的功能。您可以通过 DaoCloud 来统一管理不同平台的大量主机,并无缝享受持续集成、持续发布等服务。 本篇文档演示如何将应用迁移到自有主机。了解集群和自有主机 文档包含以下三个部分,如迁移遇到困难请至 DaoCloud Services 页面点击右下角联系客服 迁移应用到自有主机 从云端 Mysql 导出数据 从云端 Volume 导出数据 准

  • 问题内容: 我需要将一个复杂的项目从sqlite迁移到PostgreSQL。很多人似乎对外键,数据截断等存在问题。 有全自动的工具吗? 迁移之前是否需要检查一些数据或架构? 问题答案: 我的经验,从SQL转储和还原无法正常工作。 你应该遵循以下顺序: 1.将数据库内容转储到json 2.在settings.py中切换后端 Syncdb并将新数据库迁移到相同的表结构 4.将json加载到新数据库。