java - 错误 : Could not find or load main class junit_runner.

标签 java junit jgrasp

我正在尝试对我的一些文件运行 JUnit 测试。我很确定我已经安装并配置了 JUnit,但配置中的某些内容不正确。我认为这与我使用运行 Ubuntu 的机器有关。这是我的主文件:

import java.util.ArrayList;

public class ArrayListProblems {


/**
 * reverses the ArrayList in place. What that means is that you do not create a new
 * ArrayList pointer. Everything happens in the al variable
 * So if al starts as {1, 2, 3, 4, 5} when its finished the same memory location
 * holds {5, 4, 3, 2, 1}
 * @param al  the ArrayList to reverse
 */
public static void reverseArrayList(ArrayList<Integer> al)
{
 for(int i = al.size() - 1; i >= 0; i--)
 {
 al.add(al.remove(i));
 }  
}

/**
 * finds and returns the largest integer in the ArrayList al
 * @param al the ArrayList to search for the largest element
 * @return the value of te largest element. If no elements then return Integer.MIN_VALUE.
 */
public static int maximumElement(ArrayList<Integer> al)
{
 int max = al.get(0);
  for(int i = 1; i < al.size(); i++)
  {
   max = Math.max(max, al.get(i));
  }
  return max;
}

/**
 * In place changes all elements of the ArrayList to their absolute value
 * so {1,-2,3,-4} become {1,2,3,4}
 * @param al the ArrayList to make he changes in.
 */
public static void changeAllNegatives(ArrayList<Integer> al)
{
 for(int i = 0; i < al.size(); i++)
 {
 al.set(i, Math.abs(al.get(i)));
 }  
}

/**
 * Creates and returns an ArrayList with all the elements of the original ArrayList al that begin with the
 * begin substring.
 * So ({"bob","boob","ralph", "bop", "bing"}, "bo") would return the ArrayList {"bob","boob","bop"}
 * @param al The ArrayList to search
 * @param begin the substring to check the beginning
 * @return a new ArrayList containing only the elements that begin with begin
 */
public static ArrayList<String> getAllFirstLetters(ArrayList<String> al, String begin)
{
    ArrayList<String> list = new ArrayList<String>();
  for(int i = 0; i < al.size(); i++)
  {
   if(al.get(i).length() >= begin.length() && al.get(i).substring(0, begin.length()).equals(begin))
   {
    list.add(al.get(i));
   }
  }
  return list;
}

/**
 * returns the mode of the ArrayList. Note these are Strings not integers. 
 * Note that the mode is simply the element that appears most often. 
 * There are multiple ways to solve this problem.
 * @param al  The ArrayList to search
 * @return the element that appears most often in al
 */
public static String findMode(ArrayList<String> al)
{
 String currentMode = null;
 int currentModeCounter = 0;
 for(int i = 0; i < al.size(); i++)
 {
  int modeCounter = 0;
  String compare = al.get(i);
  for(int j = 0; j < al.size(); j++)
  {
   if(al.get(j).equals(compare))
   {
    modeCounter++;
   } 
  }
  if(modeCounter > currentModeCounter)
  {
   currentMode = compare;
   currentModeCounter = modeCounter;
  } 
 }
return currentMode;
}

public static void main (String args[])
 {
ArrayList<String> a1 = new ArrayList<String>();
a1.add("bob");
a1.add("boob");
a1.add("bob");
a1.add("bop");
a1.add("bing");
ArrayList<String> a2 = getAllFirstLetters(a1, "bo");
System.out.println(findMode(a1));
 }
}

这是测试文件:

 import java.util.ArrayList;
 import junit.framework.TestCase;
 import static org.junit.Assert.*;

 import org.junit.Test;

 public class ArrayListProblemsTest{

@Test
public void reverseArrayListTest1() {
    ArrayList<Integer> al = new ArrayList<Integer>();
    al.add(5);
    al.add(2);
    al.add(4);
    al.add(10);
    al.add(21);
    al.add(12);
    al.add(13);
    al.add(15);
    al.add(-1);
    al.add(6);
    ArrayListProblems.reverseArrayList(al);
    ArrayList<Integer> al2 = new ArrayList<Integer>();
    al2.add(6);
    al2.add(-1);
    al2.add(15);
    al2.add(13);
    al2.add(12);
    al2.add(21);
    al2.add(10);
    al2.add(4);
    al2.add(2);
    al2.add(5);
    assertEquals(al2, al);

}


@Test
public void reverseArrayListTest2() {
    ArrayList<Integer> al = new ArrayList<Integer>();

    al.add(2);
    al.add(4);
    al.add(10);
    al.add(21);
    al.add(12);
    al.add(13);
    al.add(15);
    al.add(-1);
    al.add(6);
    ArrayListProblems.reverseArrayList(al);
    ArrayList<Integer> al2 = new ArrayList<Integer>();
    al2.add(6);
    al2.add(-1);
    al2.add(15);
    al2.add(13);
    al2.add(12);
    al2.add(21);
    al2.add(10);
    al2.add(4);
    al2.add(2);
    assertEquals(al2, al);

}

@Test
public void reverseArrayListTest3(){
    ArrayList<Integer> al = new ArrayList<Integer>();
    ArrayList<Integer> al2 = new ArrayList<Integer>();
    assertEquals(al,al2);
}

@Test
public void maximumElementTest1(){
    ArrayList<Integer> al = new ArrayList<Integer>();

    al.add(2);
    al.add(4);
    al.add(10);
    al.add(21);
    al.add(12);
    al.add(13);
    al.add(15);
    al.add(-1);
    al.add(6);
    int max = ArrayListProblems.maximumElement(al);
    assertEquals(21, max);
}
@Test
public void maximumElementTest2(){
    ArrayList<Integer> al = new ArrayList<Integer>();
    int max = ArrayListProblems.maximumElement(al);
    assertEquals(Integer.MIN_VALUE, max);
}

@Test
public void maximumElementTest3(){
    ArrayList<Integer> al = new ArrayList<Integer>();
    al.add(-2);
    al.add(-4);
    al.add(-10);
    al.add(-21);
    al.add(-12);
    al.add(-13);
    al.add(-15);
    al.add(-1);
    al.add(-6);
    int max = ArrayListProblems.maximumElement(al);
    assertEquals(-1, max);
}

@Test
public void changeAllNegativesTest1(){
    ArrayList<Integer> al = new ArrayList<Integer>();

    al.add(2);
    al.add(4);
    al.add(-10);
    al.add(21);
    al.add(-12);
    al.add(13);
    al.add(15);
    al.add(-1);
    al.add(6);
    ArrayListProblems.changeAllNegatives(al);
    ArrayList<Integer> al2 = new ArrayList<Integer>();

    al2.add(2);
    al2.add(4);
    al2.add(10);
    al2.add(21);
    al2.add(12);
    al2.add(13);
    al2.add(15);
    al2.add(1);
    al2.add(6);
    assertEquals(al2,al);
}

@Test
public void changeAllNegativesTest2(){
    ArrayList<Integer> al = new ArrayList<Integer>();
    al.add(-2);
    al.add(-4);
    al.add(-10);
    al.add(-21);
    al.add(-12);
    al.add(-13);
    al.add(-15);
    al.add(-1);
    al.add(-6);
    ArrayList<Integer> al2 = new ArrayList<Integer>();
    al2.add(2);
    al2.add(4);
    al2.add(10);
    al2.add(21);
    al2.add(12);
    al2.add(13);
    al2.add(15);
    al2.add(1);
    al2.add(6);
    ArrayListProblems.changeAllNegatives(al);

    assertEquals(al2,al);
}

@Test
public void changeAllNegativesTest3(){
    ArrayList<Integer> al = new ArrayList<Integer>();
    ArrayList<Integer> al2 = new ArrayList<Integer>();
    ArrayListProblems.changeAllNegatives(al);
    assertEquals(al2,al);   
}

@Test
public void changeAllNegativesTest4(){
    ArrayList<Integer> al = new ArrayList<Integer>();
    al.add(5);
    al.add(2);
    al.add(4);
    al.add(10);
    al.add(21);
    al.add(12);
    al.add(13);
    al.add(15);
    ArrayListProblems.changeAllNegatives(al);
    ArrayList<Integer> al2 = new ArrayList<Integer>();
    al2.add(5);
    al2.add(2);
    al2.add(4);
    al2.add(10);
    al2.add(21);
    al2.add(12);
    al2.add(13);
    al2.add(15);
    assertEquals(al2, al);
}

@Test
public void getAllFirstLettersTest1(){
    ArrayList<String> al = new ArrayList<String>();
    al.add("bob");
    al.add("boob");
    al.add("ralph");
    al.add("bop");
    al.add("bing");
    ArrayList <String> al3 = ArrayListProblems.getAllFirstLetters(al, "bo");
    ArrayList<String> al2 = new ArrayList<String>();
    al2.add("bob");
    al2.add("boob");
    al2.add("bop");
    assertEquals(al2,al3);
}

@Test
public void getAllFirstLettersTest2(){
    ArrayList<String> al = new ArrayList<String>();
    al.add("bob");
    al.add("boob");
    al.add("ralph");
    al.add("bop");
    al.add("bing");
    ArrayList<String> al3 = ArrayListProblems.getAllFirstLetters(al, "b");
    ArrayList<String> al2 = new ArrayList<String>();
    al2.add("bob");
    al2.add("boob");
    al2.add("bop");
    al2.add("bing");

    assertEquals(al2,al3);

}

@Test
public void getAllFirstLettersTest3(){
    ArrayList<String> al = new ArrayList<String>();
    al.add("bob");
    al.add("boob");
    al.add("ralph");
    al.add("bop");
    al.add("bing");
    ArrayList<String> al3 = ArrayListProblems.getAllFirstLetters(al, "ra");
    ArrayList<String> al2 = new ArrayList<String>();
    al2.add("ralph");
    assertEquals(al2,al3);

}
@Test
public void getAllFirstLettersTest4(){
    ArrayList<String> al = new ArrayList<String>();
    al.add("bob");
    al.add("boob");
    al.add("ralph");
    al.add("bop");
    al.add("bing");
    ArrayList <String> al3 = ArrayListProblems.getAllFirstLetters(al, "sam");
    ArrayList<String> al2 = new ArrayList<String>();
    assertEquals(al2,al3);
}

@Test
public void findModeTest1(){
    ArrayList<String> al = new ArrayList<String>();
    al.add("Sam");
    al.add("Ralph");
    al.add("Sam");
    al.add("Bob");
    al.add("Nikki");
    al.add("Bob");
    al.add("Nikki");
    al.add("Sam");
    al.add("Frank");
    String mode = ArrayListProblems.findMode(al);
    assertEquals("Sam",mode);
}
@Test
public void findModeTest2(){
    ArrayList<String> al = new ArrayList<String>();
    al.add("Ralph");
    al.add("Bob");
    al.add("Nikki");
    al.add("Bob");
    al.add("Nikki");
    al.add("Sam");
    al.add("Sam");
    al.add("Sam");
    al.add("Frank");
    String mode = ArrayListProblems.findMode(al);
    assertEquals("Sam",mode);
}

@Test
public void findModeTest3(){
    ArrayList<String> al = new ArrayList<String>();
    al.add("Ralph");
    al.add("Bob");
    al.add("Nikki");
    al.add("Bob");
    al.add("Nikki");
    al.add("Sam");
    al.add("Sam");
    al.add("Sam");
    al.add("Frank");
    al.add("Bob");
    al.add("Bob");
    String mode = ArrayListProblems.findMode(al);
    assertEquals("Bob",mode);
}

@Test
public void findModeTest4(){
    ArrayList<String> al = new ArrayList<String>();
    String mode = ArrayListProblems.findMode(al);
    assertNull(mode);
 }
}

当我使用 JUnit 测试进行编译和运行时,它显示错误:无法找到或加载主类 junit_runner.JgrRunner,几秒钟后,它显示 8 秒后无法连接到 JUnit Runner。

感谢任何帮助

最佳答案

要在 jGRASP 中使用 JUnit 和单个源文件,请在源文件处于焦点的情况下点击“创建 JUnit 测试文件”图标(工具栏上的红/白/绿渐变文件图标)。如果该图标不存在,请使用“工具”>“JUnit”>“配置”告诉 jGRASP JUnit 的安装位置。对于单个文件(无项目),您的测试类必须与主类命名相同,并添加“Test”,因此对于类“MyClass”,它将是“MyClassTest”。如果您已有该文件,“创建 JUnit 测试文件”将询问您是否要使用现有文件。创建文件后,工具栏上将显示 JUnit 运行图标(红/白/绿渐变运行人图标),您可以使用它来编译和运行测试。

如果您在 jGRASP 中有一个项目,请将测试文件作为测试文件而不是源文件添加到项目中。如果它们已添加为源,您可以将它们拖到项目 Pane 中的“测试”,或右键单击并选择“标记为测试”。对于项目,jGRASP 将跟踪哪些测试需要重新运行(如果源已被修改)以及上次运行是否成功,这将显示在项目 Pane 中。项目中的测试文件可以具有任何名称,但那些与项目中附加“Test”的类相同的名称将被假定为与这些源文件关联,并且项目 Pane 中的测试文件和关联源的结果将显示,这很方便。

如果您完成所有这些操作后仍然遇到问题,请使用“帮助”>“报告错误”让开发人员(我)知道。

关于java - 错误 : Could not find or load main class junit_runner.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48217589/

相关文章:

未检测到 Java 套接字已关闭

java - 无法从 Selenium 中的输入元素获取文本

android - Android JUnit 测试的 Emma 代码覆盖率

ant - 使用 jacoco 时,teamcity 未捕获失败的 junit 测试

C 代码错误 以前从未见过

java - 无法与 .class 文件交互

java - 如何在Java中创建线程控制台进度条?

java - 类构造函数中的堆栈溢出错误

Maven:在项目B中使用项目A的特定测试类

java.lang.ClassCastException : trail1modified cannot be cast to java. applet.Applet