Testing Erlang';的eNONT错误解决方案;Windows上的常见测试是什么?

Testing Erlang';的eNONT错误解决方案;Windows上的常见测试是什么?,testing,erlang,tdd,Testing,Erlang,Tdd,在Windows上对Erlang使用Common Test时,我在Common Test和Erlang中遇到了很多错误。首先,如果项目路径中有任何空格,那么公共测试通常会彻底失败。为了解决这个问题,我将项目移动到一个没有空格的路径上(但我真的希望开发人员能够修复这些库,以便它们在Windows上更好地工作)。现在,我大部分时间都在运行公共测试,只是它不会在最后打印HTML报告。这是我在测试运行后得到的错误: Testing myapp.ebin: EXIT, reason { {badmatch

在Windows上对Erlang使用Common Test时,我在Common Test和Erlang中遇到了很多错误。首先,如果项目路径中有任何空格,那么公共测试通常会彻底失败。为了解决这个问题,我将项目移动到一个没有空格的路径上(但我真的希望开发人员能够修复这些库,以便它们在Windows上更好地工作)。现在,我大部分时间都在运行公共测试,只是它不会在最后打印HTML报告。这是我在测试运行后得到的错误:

Testing myapp.ebin: EXIT, reason {
{badmatch,{error,enoent}},
              [{test_server_ctrl,start_minor_log_file1,4,
                                 [{file,"test_server_ctrl.erl"},{line,1959}]},
               {test_server_ctrl,run_test_case1,11,
                                 [{file,"test_server_ctrl.erl"},{line,3761}]},
               {test_server_ctrl,run_test_cases_loop,5,
                                 [{file,"test_server_ctrl.erl"},{line,3032}]},
               {test_server_ctrl,run_test_cases,3,
                                 [{file,"test_server_ctrl.erl"},{line,2294}]},
               {test_server_ctrl,ts_tc,3,
                                 [{file,"test_server_ctrl.erl"},{line,1434}]},
               {test_server_ctrl,init_tester,9,
                                 [{file,"test_server_ctrl.erl"},
                                  {line,1401}]}]}

如果测试函数名太长或名称中有太多下划线(我怀疑这也是一个bug),或者太多测试失败(这意味着公共测试对TDD没有用处),则在Erlang R15和更早版本中有时会发生这种情况。但现在它发生在每台ct上:从R15B01中的普通测试运行。有人知道我如何解决这个问题吗?有人在Windows上成功使用TDD和Common Test吗?

给出最后一条评论,您可能想禁用buildin\u钩子。您可以通过将以下内容传递给ct:run/1或ct\u run来完成此操作

{enable_builtin_hooks,false}

这将禁用cth_log_重定向钩子,并可能解决过载期间的问题。

请附上一个最小的可复制示例,说明您正在运行的套件和windows+common_测试版本?我正在运行windows XP SP3 32位。通用测试的版本是R15B01附带的版本,即通用测试1.6.1。至于一个可复制的例子,不幸的是我在工作中使用了这个,所以我不能显示代码,所以我将看看是否有一些较小的例子可以复制这个。但问题是,常见的测试工作或不工作似乎是由最小的差异(根据我的经验)造成的。我是stackoverflow的新手,您能附加比这些注释框允许的更长的代码吗?如果没有,我不确定我是否能复制它。我会看看我能想出什么。你可能想使用类似的东西,或者用相关代码编辑上面的文章。如果没有其他问题的话,我建议向erlang patchet邮件列表发送一个bug报告(带有示例套件),我一直在不断地戳它,我认为我正在进行的测试可能没有通过普通测试得到很好的处理。我基本上是向数千个进程发送消息,并验证每个进程的结果。这种情况在每个测试用例中发生数次。如果一个测试失败,它往往会导致数千个错误以非常快的速度向标准输出信息,这正被普通测试捕获并可能使其过载。我在普通测试日志中也看到了这类事情,这让我认为:===结束于2012-04-27 15:52:54==位置{ct_framework,end_tc}==原因={error,{ct\u framework,end\u tc,{timeout,{gen\u event,call,[error\u logger,cth\u log\u redirect,flush]}