我有一个班级,我为一些单元测试。一切都在游泳,直到我改变了类的名称,以匹配我测试后缀为TestCase的类。每当我尝试在Eclipse中运行测试用例时,我都会得到一个“这种类型没有输入配置”。
有人建议该类名称有30个字符的长度限制。我查看了班级名称,长度为32个字符。然后我删除了两个字符,并再次尝试,一切正常。我把它们放回去了,它停止了工作。
对此有解释吗?
编辑:
回应一些评论。它是Galileo,使用Windows XP,JUnit 4.4。
编辑2:
对不起伙计们。我想我错了。模式似乎是JUnit / Eclipse不喜欢我的类名是TestCase。一旦我拿走了TestCase部件就可以了。它适用于大字符串,短字符串以及介于两者之间的所有内容。这个名字可以是像ABCTestCase这样的东西,但由于某种原因,它不能用于TestCase。
答案 0 :(得分:1)
默认情况下,我认为JUnit运行器设置为查找* Test文件,因此它会过滤掉TestCase。人们经常使用* TestCase作为基类而不进行任何自己的测试。不确定这是不是你遇到的。如果是这样,它可以在跑步者中配置。
答案 1 :(得分:1)
事实证明,这是因为我正在扩展TestCase,这使得JUnit运行程序认为它仍然是版本3.即使你告诉它使用版本4.
答案 2 :(得分:0)
我不确定这与某种操作系统长度限制完全相关,而是与:
来自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:
,这很奇怪CreateProcess
函数的最大命令行长度字符。此限制来自UNICODE_STRING结构。 CreateProcess是创建进程的核心功能,所以如果你直接与Win32对话,那么这是你唯一需要担心的限制。但是,如果您通过其他方式到达CreateProcess,那么您经过的路径可能有其他限制。INTERNET_MAX_URL_LENGTH
函数强加的ShellExecute/Ex
(约2048年)命令行长度限制,MAX_PATH
。)可能javac command
的总长度超过了其中一个限制,并且无法编译其中一个JUnit Java类,这意味着它无法再执行(并触发以上错误信息)
答案 3 :(得分:0)
检查运行下的运行配置 - >跑... 您的测试在那里有配置。检查“测试类”字段。