代码之家  ›  专栏  ›  技术社区  ›  uriDium

JUnit对你的类名有一些奇怪的30个字符的长度限制吗?

  •  3
  • uriDium  · 技术社区  · 16 年前

    我有一门课是为一些单元测试准备的。一切都顺利进行,直到我更改了类的名称,使其与我测试的类(后缀为testcase)相匹配。每次我试图在Eclipse中运行测试用例时,都会突然得到一个“没有这种类型的输入配置”。

    然后有人建议类名称的长度限制为30个字符。我看了一下类名,它有32个字符长。然后我从结尾处删除了两个字符,然后再试一次,一切正常。我把它们放回去,它就不工作了。

    对此有什么解释吗?

    编辑:

    对一些评论的回应。它是伽利略,使用WindowsXP,JUnit4.4。

    编辑2:

    抱歉,伙计们。我想我错了。模式似乎是junit/eclipse不喜欢我的类名是testcase。一旦我拿走测试用例的一部分,它就工作了。它使用的是大量的长字符串、短字符串以及介于两者之间的所有内容。名称可以是类似abctestcase的任何东西,但由于某种原因,它不能是testcase。

    4 回复  |  直到 12 年前
        1
  •  1
  •   ndp    16 年前

    默认情况下,我相信JUnit运行程序设置为查找*测试文件,因此它将过滤掉测试用例。人们经常使用*testcase作为一个没有任何测试的基类。不知道你是不是遇到了这个问题。如果是这样,它在运行程序中是可配置的。

        2
  •  1
  •   uriDium    16 年前

    结果是因为我扩展了testcase,所以junit运行程序认为它仍然是版本3。即使你告诉它使用版本4。

        3
  •  0
  •   keuleJ Tigran    16 年前

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

        4
  •  0
  •   Community Mohan Dere    9 年前

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

    • 一些基于类名称的硬编码参数化。
    • 或者源文件夹有问题。
      事实上,您的信息看起来是:

    alt text

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

    如果您在Eclipse IDE中获得上述错误消息,那么在运行测试用例时,只需确保您将测试类作为_156;eclipse源文件夹__定义的一部分。

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


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

    但考虑到 length limit on Windows are :

    • 三万二千七百六十七 的字符 最大命令行长度 对于 CreateProcess 功能。这个限制来自unicode_字符串结构。CreateProcess是创建进程的核心功能,因此如果您直接与win32交谈,那么这是您唯一需要担心的限制。但是,如果您通过其他方法到达CreateProcess,那么您所经过的路径可能有其他限制。
    • 8192年 字符命令行长度限制 CMED EXE .
    • 2048年 长度由于 INTERNET_MAX_URL_LENGTH (大约2048年)命令行长度限制 ShellExecute/Ex 功能 . (如果在Windows 95上运行,则限制仅为 MAX_PATH )
    • 三万二千七百六十七 的字符 环境的最大大小 (包括所有变量名加上所有值)

    也许 的总长度 javac command 超过这些限制之一,无法编译其中一个JUnit Java类 ,表示无法再执行(并触发上述错误消息)