gpt4 book ai didi

java - 没有 Runnable 方法和 Test 类应该只有一个公共(public)零参数构造函数

转载 作者:行者123 更新时间:2023-11-30 11:42:43 25 4
gpt4 key购买 nike

每当我在 Ant 中运行我的代码时,我都会遇到错误,但在使用 (Run > JunitTest) 的 eclipse 上它运行良好,没有错误。

以下是我在生成报告时收到的错误消息:

"Test class should have exactly one public zero-argument constructor"

java.lang.Exception: Test class should have exactly one public zero-argument constructor at java.lang.reflect.Constructor.newInstance(Unknown Source)

"No Runnable methods" -java.lang.Exception: No runnable methods at java.lang.reflect.Constructor.newInstance(Unknown Source)

请看我的代码:

这段代码有注释(@)

import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Test;


public class ABMTLinks extends SeleneseTestCase {

/*
* Variables for PieChart
*/
public static int
iPass,
iFail,
iError,
iLeft=800,
iRight=600;
public static String
sPieChartTitle = "Pie Chart",
sPieChartName = "Pie Chart",
sPath = "c:\\temp\\pieChart.jpg";

public static int iTotalTestCaseCtr, iSum;
public static String
HMT = "http://dev.abmt.igloo.com.au/GetInvolved/Hostamorningtea/tabid/165/Default.aspx";

@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 1111, "*googlechrome", "http://www.google.com.ph/");
selenium.start();
}
@Test
public void testUntitled() throws Exception {
selenium.open("/#hl=fil&output=search&sclient=psy-ab&q=harold&oq=harold&gs_l=hp.3..0l4.12830.13374.0.14277.6.6.0.0.0.2.745.2228.2-4j0j1j0j1.6.0...0.0...1c.ef1dV3OAuZg&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=55dc10243cd7c593&biw=1366&bih=624");

String URL = HMT;
if (URL.equals(HMT)
){
iPass++;
System.out.println("All pages redirects to each URL with no errors");
}
else {
iFail++;
assertTrue("Test Case is Failed!", false);
System.out.print("Failed");
}
iTotalTestCaseCtr++;
}

@After
public void tearDown() throws Exception {
selenium.stop();
iSum = iFail + iPass;
if (iTotalTestCaseCtr == iSum) {
PieChart chartABMT = new PieChart(iPass, iFail, iError, sPieChartName, sPieChartTitle, iLeft, iRight, sPath) ;
chartABMT.pack();
chartABMT.setVisible(true);
}
}
}

这段代码继承了上面的代码,生成饼图并保存在文件夹中

import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.IOException;
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;

public class PieChart extends JFrame {

public static final long serialVersionUID = 1L;

public PieChart(int iPass, int iFail, int iError, String applicationTitle, String chartTitle, int iLeft, int iRight, String sPath) {
super(applicationTitle);
PieDataset dataset = createDataset(iFail, iError, iPass);
JFreeChart chart = createChart(dataset, chartTitle);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(iLeft, iRight));
setContentPane(chartPanel);
String fileLocation = sPath ;
saveChart(chart, fileLocation);

}

/**
* Creates a sample dataset
*/
public PieDataset createDataset(int iFail, int iError, int iPass) {
DefaultPieDataset result = new DefaultPieDataset();
result.setValue("Failed:", iFail);
result.setValue("Error:", iError);
result.setValue("Passed:", iPass);
return result;
}

/**
* Creates a chart
*/
public JFreeChart createChart(PieDataset dataset, String title) {

JFreeChart chart = ChartFactory.createPieChart(title, // chart title
dataset, // data
true, // include legend
true,
false);

PiePlot plot = (PiePlot) chart.getPlot();
plot.setLabelFont(new Font("SansSerif", Font.PLAIN, 12));
plot.setCircular(false);
plot.setLabelGap(0.02);
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} {1} ({2})")); //Shows the total count and percentage for Failed/Passed/Error
return chart;

}
public void saveChart(JFreeChart chart, String fileLocation) {
String fileName = fileLocation;
try {
/**
* This utility saves the JFreeChart as a JPEG First Parameter:
* FileName Second Parameter: Chart To Save Third Parameter: Height
* Of Picture Fourth Parameter: Width Of Picture
*/
ChartUtilities.saveChartAsJPEG(new File(fileName), chart, 800, 600);
} catch (IOException e) {
e.printStackTrace();
System.err.println("Problem occurred creating chart.");
}
}

}

下面是我的 XML 代码:

<?xml version="1.0" encoding="iso-8859-1"?>

<project name="JUnitTest1" default="usage" basedir=".">
<!-- Create a folder with date and time -->
<tstamp prefix="start">
<format property="dateTime" pattern="MM-dd-YYYY HH-MM-ss" />
</tstamp>

<property environment = "env"/>
<property name="ws.home" value="${basedir}"/>
<property name="ws.jars" value="C:/Selenium/selenium-2.24.1"/>
<property name="Igloo.dest" value="${ws.home}/build"/>
<property name="Igloo.src" value="${ws.home}/src"/>
<property name="Igloo.reportsDir" value="C:/reports/report ${start.dateTime}"/>
<propert name="junit.style.dir" value = "C:/xsl/junit-frames.xsl" />

<path id="Igloo.path">
<pathelement location="${Igloo.dest}" />
<fileset dir = "${ws.jars}" >
<include name = "*.jar" />
</fileset>
</path>

<target name="setClassPath" unless="Igloo.classpath">
<path id="classpath_jars">
<fileset dir="${ws.jars}" includes="*.jar" />
</path>

<pathconvert pathsep=": "
property = "Igloo.classpath"
refid = "classpath_jars"/>
</target>

<target name="init" depends="setClassPath">
<tstamp>
<format property="start.time" pattern="MM/dd/yyyy hh:mm ss" />
</tstamp>

<condition property="ANT"
value = "${env.ANT_HOME}/bin/ant.bat"
else = "${env.ANT_HOME}/bin/ant">
<os family="windows" />
</condition>
</target>

<!-- Clean -->
<target name="clean">
<delete dir="${Igloo.dest}"/>
</target>

<!-- Compile -->
<target name="compile" depends="init, clean">
<delete includeemptydirs="true" quiet="true">
<fileset dir="${Igloo.dest}" includes="**/*"/>
</delete>

<echo message="making directory..."/>
<mkdir dir="${Igloo.dest}" />
<echo message="classpath ...: ${Igloo.classpath}"/>
<echo message="compiling..."/>

<javac
debug="true"
destdir="${Igloo.dest}"
srcdir="${Igloo.src}"
target="1.7"
classpath="${Igloo.classpath}"
>
</javac>

</target>

<!-- build -->
<target name="build" depends="init">
</target>

<target name="usage">
<echo>
ant run will execute the test
</echo>
</target>

<!-- Run -->
<target name="run">
<mkdir dir="${Igloo.reportsDir}" />
<delete includeemptydirs="true" quiet="true">
<fileset dir="${Igloo.reportsDir}" includes="**/*" />
</delete>
<java jar="${ws.jars}" fork="true" spawn="true" />
<junit fork="yes" haltonfailure="no" printsummary="yes">

<classpath refid="Igloo.path" />
<batchtest todir="${Igloo.reportsDir}" fork="true">
<fileset dir="${Igloo.dest}">
<include name="ABMTLinks.class" />
</fileset>
</batchtest>
<formatter type="xml" />
<classpath refid="Igloo.path" />
</junit>

<junitreport todir="${Igloo.reportsDir}">
<fileset dir="${Igloo.reportsDir}">
<include name="TEST-*.xml" />
</fileset>
<report todir="${Igloo.reportsDir}"/>
</junitreport>
</target>
</project>

请帮忙。 error message

最佳答案

我已经解决了我的问题,谢谢你的帮助。我只是排除了 PieChart.class,因为每当我运行 junit 时,因为 PieChart.class 是一个实用程序类,所以它不能在 ant 中运行。在 xml 上我只是排除类,<exclude name = "PieChart.class" />只是为了确保我刚刚添加了 <exclude name="PieChart.java" />

                <classpath refid="Igloo.path" />
<batchtest todir="${Igloo.reportsDir}" fork="true">
<fileset dir="${Igloo.dest}">
<include name="ABMTLinks.class" />
<exclude name = "PieChart.class" />
<exclude name = "PieChart.java" />
</fileset>
</batchtest>
<formatter type="xml" />
<classpath refid="Igloo.path" />
</junit>

<junitreport todir="${Igloo.reportsDir}">
<fileset dir="${Igloo.reportsDir}">
<include name="TEST-*.xml" />
</fileset>
<report todir="${Igloo.reportsDir}"/>
</junitreport>
</target>

关于java - 没有 Runnable 方法和 Test 类应该只有一个公共(public)零参数构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11555854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com