3

我有一堂课是为一些单元测试而做的。一切都进行得很顺利,直到我更改了类的名称以匹配我正在测试的以 TestCase 为后缀的类。突然,每次我尝试在 Eclipse 中运行测试用例时,我都会收到“这种类型没有输入配置”。

然后有人建议对类的名称有 30 个字符的长度限制。我看了一下类名,它有 32 个字符长。然后我从最后删除了两个字符并再次尝试,一切正常。我把它们放回去,它停止工作。

对此有解释吗?

编辑:

回应一些评论。它是 Galileo,使用 Windows XP、JUnit 4.4。

编辑2:

对不起大家。我想我错了。模式似乎是 JUnit/Eclipse 不喜欢我的类名是 TestCase。一旦我把 TestCase 部分拿走,它就可以工作了。它适用于大量长字符串、短字符串以及介于两者之间的所有内容。该名称可以是 ABCTestCase 之类的任何名称,但由于某种原因,它不能是 TestCase。

4

4 回答 4

1

默认情况下,我相信 JUnit 运行程序设置为查找 *Test 文件,因此它将过滤掉 TestCase。人们经常使用 *TestCase 作为基类,没有任何自己的测试。不确定这是否是您遇到的问题。如果是这样,它可以在运行器中配置。

于 2009-09-22T14:36:56.457 回答
1

原来是因为我在扩展 TestCase,这让 JUnit 运行者认为它仍然是版本 3。即使你告诉它使用版本 4。

于 2009-12-30T21:07:39.743 回答
0

我不确定这是否与某种操作系统长度限制有关,而是与:

  • 一些基于类名的硬编码参数化。
  • 或源文件夹的一些问题。
    确实,您的消息如下所示:

替代文字

来自QuickTip:JUnit:启动配置的输入类型不存在

如果您在 Eclipse IDE 中收到上述错误消息,则在运行测试用例时,只需确保您将测试类作为“eclipse 源文件夹”定义的一部分。

最简单的方法。右键单击文件夹-> 构建路径 -> 用作源文件夹


可能存在长度限制问题(您可以看到一些项目正在进行重构“以低于文件长度限制”(org.eclipse.jdt.core.tests.performance)。

但这很奇怪,考虑到Windows 的长度限制是

  • 该函数的最大命令行长度32767 个字符。CreateProcess此限制来自 UNICODE_STRING 结构。CreateProcess 是创建进程的核心函数,因此如果您直接与 Win32 对话,那么这是您唯一需要担心的限制。但是,如果您通过其他方式到达 CreateProcess,那么您经过的路径可能会有其他限制。
  • CMD.EXE施加的8192 个字符的命令行长度限制。
  • 2048长度由于函数INTERNET_MAX_URL_LENGTH施加的(大约 2048)命令行长度限制。(如果您在 Windows 95 上运行,则限制仅为.)ShellExecute/ExMAX_PATH
  • 环境的最大大小为32767个字符(包括所有变量名称和所有值)

也许总长度javac command确实超过了这些限制之一,并且无法编译其中一个 JUnit Java 类,这意味着它无法再执行(并触发上述错误消息)

于 2009-09-21T10:49:34.583 回答
0

在 Run -> Run... 下检查你的运行配置。你的测试在那里有一个配置。检查“测试类”字段。

于 2009-09-21T10:59:30.663 回答