2017-06-27 20 views
6

tôi tạo ra một báo cáo bảo hiểm sử dụng dotCover.exe từ dòng lệnh, nhưng nó không thành công một cách ngẫu nhiên với lỗi này:JetBrains dotCover: Bảo hiểm phiên kết thúc với các lỗi: Out of lặp cho phép để tạo ra nhiệt độc đáo tên

[JetBrains dotCover] Coverage session finished with errors: Out of allowed iteration to generate unique temp name 
    [location] = C:\Build Agent\work\f532b5455ffc19e9\Profiler\Kernel\Windows\Native\Solution\core\src\Util\temp_util.cpp(44) 
    [function] = class boost::filesystem::path __cdecl jetbrains::profiler::temp::`anonymous-namespace'::create_temp<class jetbrains::profiler::temp::create_temp_file::<lambda_91d5f1a5933e4e60038be7ca777762a9>,0x010>(const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,class jetbrains::profiler::temp::create_temp_file::<lambda_91d5f1a5933e4e60038be7ca777762a9> &&) 
    [file name] = C:\Temp\ft.EC76593C.tmp 
    [WIN32 error] = 80, The file exists. 

Dòng lệnh của tôi trông giống như sau:

dotCover.exe analyse /TargetExecutable=nunit3-console.exe /TargetArguments="unittest1.dll unittest2.dll ... unittest10.dll" /ReportType="html" /Output=CodeCoverage.html /Filters="+:*;-:*.*Tests;-:*.*.Tests;-:*.Tests;-:*.Tests*" /TempDir=C:\Temp\ 

Dường như càng có nhiều DLL tôi cố gắng trang trải nhiều khả năng lỗi này hơn. Từ thông báo lỗi có vẻ như dotCover được viết bằng C++ và nó đang sử dụng boost::filesystem::path để tạo tệp tạm thời nhưng có một số điều kiện chủng tộc và nó cố gắng tạo tệp tạm thời mới nơi tệp đã tồn tại. Phiên bản dotCover của tôi là JetBrains dotCover Console Runner 2017.1.2. Build 108.0.20170428.80910.

Có ai có ý tưởng gì về cách khắc phục lỗi đó không?

Edit: Có một lỗi mà nó không thành công - Access is denied:

[function] = class boost::filesystem::path __cdecl jetbrains::profiler::temp::`anonymous-namespace'::create_temp<class jetbrains::profiler::temp::create_temp_file::<lambda_91d5f1a5933e4e60038be7ca777762a9>,0x010>(const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,class jetbrains::profiler::temp::create_temp_file::<lambda_91d5f1a5933e4e60038be7ca777762a9> &&) 
    [file name] = C:\Temp2\ft.0A96C261.tmp 
    [WIN32 error] = 5, Access is denied. 

Một lần nữa, điều này xảy ra một cách ngẫu nhiên - thường nó sẽ thất bại 3 lần và sau đó chạy thành công trên 4.

+0

Bạn đã cố gắng báo cáo vấn đề với JetBrains bằng [tracker theo dõi lỗi] của họ (https://youtrack.jetbrains.com/issues/DOTP)? – SergGr

+0

trông loke một lỗi, "0A96C261.tmp" này trông giống như một số dấu thời gian được mã hóa. có thể nhiều bộ thử nghiệm đang cố tạo một tệp tạm thời cùng một lúc. –

+0

@ jαsοndιnAlt Điều này có được thực hiện bởi nunit không? Tôi biết nó có thể chạy thử nghiệm song song, vì vậy có lẽ nếu tôi quản lý để thuyết phục nó để tuần tự hóa chúng (tức là chạy chúng từng cái một) vấn đề sẽ biến mất. – sashoalm

Trả lời

4

đã chạy vào vấn đề này vào các thời điểm, sử dụng phiên bản truy cập sớm (JetBrains.dotCover.CommandLineTools.2017.2.20170630.95316-eap06) khiến nó biến mất vấn đề cho đến bây giờ.

Looks like a bug in the dotcover tool opened here .You can download the latest version of dotcover commandline tools from here

Các vấn đề liên quan