我是新手。
我的问题是:是否可以在一个Java类中运行这些类?
@RunWith(Suite.class)
@Suite.SuiteClasses({
Test.class,
Chart.class,
})
注意:
Test.class
- >这是 Junit测试类
Chart.class
- >这是 Java Application Class
我希望我的问题很明确。我的英语不是很好。
此代码适用于Java应用程序: Chart.Class
public static class PieChart extends JFrame {
private static final long serialVersionUID = 1L;
public PieChart(String applicationTitle, String chartTitle) {
super(applicationTitle);
// This will create the dataset
PieDataset dataset = createDataset();
// based on the dataset we create the chart
JFreeChart chart = createChart(dataset, chartTitle);
// we put the chart into a panel
ChartPanel chartPanel = new ChartPanel(chart);
// default size
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
// add it to our application
setContentPane(chartPanel);
// it will save the chart on the specified location
String fileLocation = "C:/temp/pieChartReport.jpg";
saveChart(chart, fileLocation);
}
/**
* Creates a sample dataset
*/
ABMTLinks abmt = new ABMTLinks();
private PieDataset createDataset() {
DefaultPieDataset result = new DefaultPieDataset();
result.setValue("Failed:", abmt.Fail);
result.setValue("Error:", 100);
result.setValue("Passed:", abmt.Pass);
return result;
}
/**
* Creates a chart
*/
private JFreeChart createChart(PieDataset dataset, String title) {
JFreeChart chart = ChartFactory.createPieChart3D(title, // chart title
dataset, // data
true, // include legend
true,
true);
PiePlot3D plot = (PiePlot3D) chart.getPlot();
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} {1} {2}")); //Shows the total count and percentage for Failed/Passed/Error
plot.setStartAngle(480);
plot.setDirection(Rotation.CLOCKWISE);
plot.setForegroundAlpha(0.5f);
return chart;
}
//This will store the chart on the specified location/folder
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, 500, 270);
} catch (IOException e) {
e.printStackTrace();
System.err.println("Problem occurred creating chart.");
}
}
public static void main(String[] args) {
String pieChartTitle = "Harold's Pie Chart";
String pieChartName = "Pie Chart";
PieChart demo = new PieChart(pieChartName, pieChartTitle);
demo.pack();
demo.setVisible(true);
}
}
此代码适用于JUnit测试代码: Test.Class
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 {
public int Fail=10, Pass=10;
public static String
//Declaring of variables to store the Actual values for URLs
HMT = "http://dev.abmt.igloo.com.au/GetInvolved/Hostamorningtea/tabid/165/Default.aspx",
DMT = "http://dev.abmt.igloo.com.au/GetInvolved/Donatetoamorningtea/tabid/141/Default.aspx";
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 1111, "*googlechrome", "http://dev.abmt.igloo.com.au/");
selenium.start();
}
@Test
public void testUntitled() throws Exception {
selenium.open("/GetInvolved/tabid/114/Default.aspx");
selenium.click("link=Get Involved");
selenium.waitForPageToLoad("30000");
if (URL.equals(HMT)
&& URL1.equals(DMT)
){
Pass = Pass + 1;
System.out.println("All pages redirects to each URL with no errors");
}
else {
Fail = Fail + 1;
assertTrue("Test Case is Failed!", false);
System.out.print("Failed");
}
}
@After
public void tearDown() throws Exception {
System.out.println(Fail + "+" + Pass);
}
}
答案 0 :(得分:2)
不,这是不可能的。
@Suite.SuiteClasses({})
下列出的类必须是有效的Junit4测试类。这些类至少有一个使用@Test
注释的方法。
答案 1 :(得分:0)
在我看来,你只是试图获得测试结果并在其上生成一些特殊的报告。为什么不简单地编写一个小程序来读取JUnit生成的测试报告并创建你想要的图表?
(已添加)虽然我相信你所做的是朝着错误的方向前进并且没有意义,但你可能会考虑一些事情。
你说你想调用Chart来根据Test中的信息生成一个饼图,你可以考虑使用@AfterClass:
public class Test {
private int success;
private int fail;
@AfterClass
public void generateChart() {
// generate your chart base on this.success and this.fail
}
}
在调用此类中的所有测试后,将调用@AfterClass。
但是,这样做是没有意义的,因为单元测试的整个想法是验证等都是自动完成的,你不应该对过程进行人工检查或导致测试。生成图表无助于告诉计算机什么是成功/失败。并且,您的代码对我的建议仅仅是正常的单元测试报告,告诉您有多少测试用例成功/失败。为什么要做一些没有实际价值的额外事情?