2011-03-24 62 views
0

我正在设置PMD作为我们团队中的工具来支持我们编写更好的代码。基本上我正在构建Ant scripts并尝试设置一些规则供大家使用。哪个PMD规则可以为JUnit测试激活?

但现在我打这个问题:

当我写JUnit tests我不想用我申请上我们的主要源代码相同的规则。在junit测试中,我并不在乎String rules(比如字符串重复或奇怪的实例化)。

我的问题是:

  1. 是,在我身边,一个错,我应该开始写更好的JUnit测试?
  2. 我应该提供第二组禁用某些字符串/设计/终结器规则的规则吗?

回答

2

第二种选择 - 我根本不对我的测试运行PMD。我可以和PMD提供一些JUnit特定的规则。尽管如此,我肯定会对测试代码使用单独的规则集。我期望更多的字符串文字和指定的东西,而不是使用条件/循环。毕竟,我不想复制我试图测试的代码。

+0

我将为我的测试设置另一个规则集配置。这里有一些代码重复和一些字符串混淆,我没有看到代码味道。 – cringe 2011-04-09 13:49:12

1

两件事。你为什么要设置规则,为什么不使用现有的规则? (特殊要求?)。第二个是,单元测试当然也应该有很好的质量。你的单元测试测试你的生产代码,所以它们不应该与生产代码至少有相同的质量?

+0

啊,我不是自己制定新的规则,我只是从现有的规则中选择。我的项目中不需要一些规则,例如禁用j2ee规则。如果我不禁用某些规则,我们现有的代码库将导致数千个警告。 – cringe 2011-03-24 18:30:07

+0

关于第二点,我想在单元测试中获得高质量,但是例如当我测试以文本格式导出我的对象的类时,我在'assert'语句中使用'Strings'进行了很多检查如果数据导出正确,并且PMD将给出有关字符串优化的许多警告。这是我认为关闭不会影响单元测试质量。 – cringe 2011-03-24 18:32:56