在加密的linux主目录下,我的Kotlin构建(使用maven)失败了" java.io.FileNotFoundException(文件名太长)"。
文件名看起来像这样,长度为298个字符:
/home/niel/projects/project/bla/.../bla/.../bla/SomeTest$test name with spaces$1.class
测试看起来像这样:
@Test
fun `test with nice descriptive name`() {
// ...
}
getconf NAME_MAX /
返回255
,超过文件名的298
。
Scala 可以使用max-classfile-name
选项解决此问题。
Kotlin有解决方案吗?
答案 0 :(得分:2)
我在同一个问题上碰到了头脑。当在这种描述性命名的测试方法中使用lambda时,问题会加剧(主要发生?)。
在我的情况下,我在ext4之上使用带有加密文件名的ecryptfs。给定ecryptfs在文件名开头添加的有效负载和填充,似乎~140 bytes is the usable maximum filename length。
我不知道Kotlin中有解决此问题的机制,但如果您使用JUnit 5,则可以使用@DisplayName注释来获得更详细的测试名称。
答案 1 :(得分:1)
答案 2 :(得分:0)
当您进行测试的卷未加密时,它是否有效?这似乎是第一个合乎逻辑的事情,因为家庭卷加密具有特殊的特征eCrypt details