我在Eclipse项目中使用TestNG设置测试,但是我得到一个奇怪的错误:当我尝试从业务类生成测试类时,我得到一个弹出窗口,上面写着"Grid not editable"(标题)"编译单元不可编译,或者不是junit.framework.TestCase的次级.修复和tyr再次"(正文).不知何故,Eclipse似乎认为我想创建JUnit类,我无法理解.任何线索?
组态:
是否可以从命令行运行Google CodePro analytix.
我正在寻找的是从shell脚本运行它,将文件名作为参数传递,并获取在文件级别为我作为参数传入的文件名生成的所有指标.
有可能这样做吗?如何?
是否有任何其他工具可以为Java文件提供相同的指标并从shell脚本执行?
我已经使用过Google CodePro AnalytiX,但我从未使用过Findbugs.
我对Findbugs的第一印象是配置起来比较困难.在那之后,我相信两者都是相似的.
你怎么看?
还有一个问题是:这些插件都没有将我们的代码发送到服务器,对吧?(例如,如果我们使用CodePro,我们的代码不会发送到Google服务器).
当CodePro自动为我的方法生成测试时,它通常会生成相同的测试:
/**
* Run the String getCategoryID() method test.
*
* @throws Exception
*
* @generatedBy CodePro at 17/11/11 11:44 AM
*/
@Test
public void testGetCategoryID_1()
throws Exception {
Category fixture = new Category("");
String result = fixture.getCategoryID();
// add additional test code here
// An unexpected exception was thrown in user code while executing this test:
// java.lang.NullPointerException
// at java.io.StringReader.<init>(StringReader.java:33)
// at xpath.XPathRunner.<init>(XPathRunner.java:23)
// at trademefacade.Category.retrieveCategoryID(Category.java:95)
// at trademefacade.Category.getCategoryID(Category.java:68)
assertNotNull(result);
}
/**
* Run the String getCategoryID() method …Run Code Online (Sandbox Code Playgroud) 我以为我理解了CodePro的合同,但它们似乎没有任何效果.例如:
public class ContractTest {
private int number;
/**
* @pre inputNumber > 0
*
* Alternatively:
* @post number > 0
*/
public void setNumber(int inputNumber) {
number = inputNumber;
}
public int getNumber() {
return number;
}
public static void main(String args[]) {
ConditionsTest conditionsTest = new ConditionsTest();
conditionsTest.setNumber(-5);
System.out.println("Number: " + conditionsTest.getNumber());
}
}
Run Code Online (Sandbox Code Playgroud)
运行main(String [])方法会导致:
number: -5
Run Code Online (Sandbox Code Playgroud)
打印.没有编译警告(预期),也没有抛出异常.此外,CodePro生成的junit测试方法不受合同的影响.
那么你如何使用CodePro的合同?
在消除了一些特定的无意义模式之后,我需要识别并可能删除在某个界面中声明的字段,如下所示:
public interface X
{
String A = "xxx";
String B = "zzz";
}
Run Code Online (Sandbox Code Playgroud)
当然,我可以使用Eclipse的"查找所有引用"作为一个接一个的标识符,但面对成千上万的标记,让它在未来几天看起来像一个非常枯燥的全职工作.
我尝试了Google CodePro和Java编译器可以按需吐出的警告,但是只找到了类中非公共字段的选项,而不是接口中的公共字段.
我的下一个尝试是:将它们全部注释掉,然后浏览错误列表.错误列表中没有的所有字段都可以安全地(在我的情况下!)被删除.这将是一个平淡的日子,也因为不是所有的字段列表,也具有积极的参考我要寻找那些所有的字段列表没有任何地方提及.
那么我怎样才能有效地找到所有那些现在没有参考的领域呢?
我的意思是:我认为查看给定项目的那些引用是危险的,因为我的Eclipse工作区不知道的另一个项目可能有引用.这可能是我不在Eclipse或CodePro中提供警告/分析选项的基本原理.
但事实并非如此.如果它不是我的项目中的引用,我想消除它.
我正在使用Code Pro来查看我的应用程序代码,并使用以下消息报告该工具:
警告:使用布尔文字进行相等性测试
对于此代码:
boolean valid;
if(valid == true)
Run Code Online (Sandbox Code Playgroud)
可以使用以下方法修复:
if(valid)
Run Code Online (Sandbox Code Playgroud)
我有两个问题: