gpt4 book ai didi

java - 为什么我不能从 Package Explorer 运行所有 Java JUnit 测试? - Scala 插件问题

转载 作者:搜寻专家 更新时间:2023-10-31 20:10:27 24 4
gpt4 key购买 nike

编辑3

我安装了新版本的 eclipse (Mars - 4.5.0),一切正常。但是,当我通过 Eclipse Marketplace 重新安装 Scala 时,问题又出现了。所以也许是 Scala 插件的问题?


编辑 2

我仔细研究了一下,发现如果我删除某些包,功能就会恢复。具体来说,如果我删除包 functional 和 io,运行整个项目测试的能力就会恢复。重命名包没有帮助,只能删除它们。此外,如果我在这些包中添加 JUnit 测试,我仍然无法通过包资源管理器运行整个包来运行该测试。


我在 Eclipse 中遇到一个特定 Java 项目的问题。当我尝试从项目资源管理器运行所有 JUnit 测试时(通过 [右键单击项目文件夹] --> run as --> JUnit Test),我收到错误消息,很多人似乎即将看到:

Problem Launching JUnit Tests: No tests found with test runner 'JUnit 4'

单击消息上的“确定”会弹出“运行配置”对话框。

奇怪的是,在整个项目范围内,这个问题似乎非常孤立于这个项目。我可以毫不费力地执行以下操作:

  • 通过打开项目并点击顶部的绿色运行按钮来运行该项目中的任何单个测试。
  • 通过右键单击项目资源管理器中的类并选择“作为 JUnit 测试运行”来运行此项目中的任何单个测试
  • 使用相同的方法在该项目的任何包中运行所有测试。
  • 以相同的方法在任何其他项目中运行所有测试。

我已经尝试过类似帖子中提到的标准内容,但似乎没有任何效果。具体来说,我试过:

  • 重启 eclipse
  • 重新启动我的电脑
  • 清理和重建项目
  • 删除项目并从 git 重新克隆,然后重新添加到 eclipse
  • 将@RunWith 注释添加到我的测试用例
  • 确保我所有的测试用例都以“test”开头
  • 改用 JUnit3
  • 删除所有 JUnit 运行配置并重新创建此运行配置

此外,我清楚地记得不久前这个功能在这个项目中起作用,但不记得确切的时间。所以我一定是添加/更改/删除了导致错误出现的内容。


编辑@Durron597 的建议:不幸的是,这些建议都没有奏效。我还尝试删除每个 JUnit 运行配置并再次尝试创建配置过程,仍然没有成功。

我的eclipse版本是:Luna Service Release 2 (4.4.2)

我的 JUnit 版本是:4.11

JUnit 首选项屏幕截图: JUnit preferences screenshot


这是一个测试的代码:

package common;

import static org.junit.Assert.*;

import java.util.ArrayList;
import java.util.HashSet;

import org.junit.Test;

public class UtilTest {

@Test
public void testWrappers(){
short[] s = {1,2,3,4};
Short[] s2 = Util.boxArr(s);
short[] s3 = Util.unboxArr(s2);

assertEquals(s.length, s2.length);
assertEquals(s.length, s3.length);
for(int i = 0; i < s.length; i++){
assertEquals(s[i], s2[i].shortValue());
assertEquals(s[i], s3[i]);
}

int[] i = {1,2,3,4, Integer.MAX_VALUE, Integer.MIN_VALUE};
Integer[] i2 = Util.boxArr(i);
int[] i3 = Util.unboxArr(i2);

assertEquals(i.length, i2.length);
assertEquals(i.length, i3.length);
for(int x = 0; x < s.length; x++){
assertEquals(i[x], i2[x].intValue());
assertEquals(i[x], i3[x]);
}

long[] l = {1,2,3,4, Integer.MAX_VALUE, Integer.MIN_VALUE, Long.MAX_VALUE, Long.MIN_VALUE};
Long[] l2 = Util.boxArr(l);
long[] l3 = Util.unboxArr(l2);

assertEquals(l.length, l2.length);
assertEquals(l.length, l3.length);
for(int x = 0; x < s.length; x++){
assertEquals(l[x], l2[x].longValue());
assertEquals(l[x], l3[x]);
}

float[] f = {1,2,3,4, 0.4f, 0.1f, Float.MAX_VALUE, Float.MIN_NORMAL};
Float[] f2 = Util.boxArr(f);
float[] f3 = Util.unboxArr(f2);

assertEquals(f.length, f2.length);
assertEquals(f.length, f3.length);
for(int x = 0; x < s.length; x++){
assertEquals(f[x], f2[x].floatValue(), 0.00001);
assertEquals(f[x], f3[x], 0.00001);
}


double[] d = {1,2,3,4, 0.4, 0.1, Float.MAX_VALUE, Float.MIN_VALUE, Double.MAX_VALUE, Double.MIN_NORMAL};
Double[] d2 = Util.boxArr(d);
double[] d3 = Util.unboxArr(d2);

assertEquals(d.length, d2.length);
assertEquals(d.length, d3.length);
for(int x = 0; x < s.length; x++){
assertEquals(d[x], d2[x].doubleValue(), 0.00001);
assertEquals(d[x], d3[x], 0.00001);
}

char[] c = {1,2,3,4, 'a', 'b', '.', Character.MAX_VALUE, Character.MIN_VALUE};
Character[] c2 = Util.boxArr(c);
char[] c3 = Util.unboxArr(c2);

assertEquals(c.length, c2.length);
assertEquals(c.length, c3.length);
for(int x = 0; x < s.length; x++){
assertEquals(c[x], c2[x].charValue());
assertEquals(c[x], c3[x]);
}
}

@Test
public void testRandElement(){
assertTrue(null==Util.randomElement(null));

HashSet<Integer> s = new HashSet<>();
assertTrue(null==Util.randomElement(s));

for(int i = 0; i < 10; i++){
s.add(i);
}

HashSet<Integer> s2 = new HashSet<>();
while(! s2.equals(s)){
Integer i = Util.randomElement(s);
s2.add(i);
assertTrue(s.contains(i));
}
}

@Test
public void testPermute(){
ArrayList<Integer[]> a = Util.permute(new Integer[]{1,2,3,4});
assertEquals(a.size(), 24);

for(Integer[] i : a){
assertEquals(i.length, 4);
assertEquals(10, i[0] + i[1] + i[2] + i[3]);
}

HashSet<Integer[]> s = new HashSet<>(a);
assertEquals(s.size(), 24);

a = Util.permute(new Integer[]{});
assertEquals(a.size(), 1);
}

}

整个项目在https://github.com/Mshnik/UsefulThings如果这也有帮助的话。

最佳答案

尝试查看此线程中的建议。这不是完全相同的错误,但很相似:No tests found with test runner 'JUnit 4'


我假设问题是您没有为“运行所有测试”设置正确的运行配置。如果您最近清除了旧的和过时的运行配置,并在没有意识到的情况下删除了适当的配置,这可能会中断。让我们按照以下步骤创建一个:

  1. 转到“运行配置”对话框。
  2. 在左侧选择 JUnit
  3. 单击带星号的页面,工具提示文本为“新启动配置”
  4. 给它起个名字。 (我使用 AllTests)
  5. 单击在所选项目、包或源文件夹中运行所有测试:单选按钮
  6. 使用搜索对话框指向您的项目
  7. 确保 Test runner 设置为 JUnit 4

单击“应用”,然后单击“运行”。这应该可以恢复损坏的方法。

如果这些步骤不起作用,请尝试以下步骤(按顺序尝试每一个,如果没有解决则转到下一个)- 可能您确实有一个配置,但它已损坏。

  1. 确保您使用的是该页面底部的 Eclipse JUnit 启动器
  2. 检查所有其他选中了“运行所有测试”单选按钮的运行配置,并将其删除。
  3. 重新启动 Eclipse
    • 最后执行此操作是因为我怀疑它不会做任何事情除非您首先完成了前面的步骤,正如您在问题中提到的

现在应该修复了。如果不是,请edit你的问题包括你的 JUnit 版本和你的 Eclipse 版本。

关于java - 为什么我不能从 Package Explorer 运行所有 Java JUnit 测试? - Scala 插件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31765759/

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