JUnit是否对您的班级名称有一些奇怪的30个字符长度限制?

时间:2009-09-21 09:50:27

标签: eclipse junit name-length

我有一个班级,我为一些单元测试。一切都在游泳,直到我改变了类的名称,以匹配我测试后缀为TestCase的类。每当我尝试在Eclipse中运行测试用例时,我都会得到一个“这种类型没有输入配置”。

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

对此有解释吗?

编辑:

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

编辑2:

对不起伙计们。我想我错了。模式似乎是JUnit / Eclipse不喜欢我的类名是TestCase。一旦我拿走了TestCase部件就可以了。它适用于大字符串,短字符串以及介于两者之间的所有内容。这个名字可以是像ABCTestCase这样的东西,但由于某种原因,它不能用于TestCase。

4 个答案:

答案 0 :(得分:1)

默认情况下,我认为JUnit运行器设置为查找* Test文件,因此它会过滤掉TestCase。人们经常使用* TestCase作为基类而不进行任何自己的测试。不确定这是不是你遇到的。如果是这样,它可以在跑步者中配置。

答案 1 :(得分:1)

事实证明,这是因为我正在扩展TestCase,这使得JUnit运行程序认为它仍然是版本3.即使你告诉它使用版本4.

答案 2 :(得分:0)

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

  • 基于类名称的一些硬编码参数化。
  • 或源文件夹的某些问题。
    实际上,您的消息看起来像:

alt text

来自QuickTip: JUnit: The input type of the launch configuration does not exist

  

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

     

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


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

但考虑到length limit on Windows are

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

可能javac command总长度超过了其中一个限制,并且无法编译其中一个JUnit Java类,这意味着它无法再执行(并触发以上错误信息)

答案 3 :(得分:0)

检查运行下的运行配置 - >跑... 您的测试在那里有配置。检查“测试类”字段。