fastlane-community/danger-xcov

Failed to export xccovreport from xcresult

intoxicated opened this issue Β· 14 comments

[11:17:06]: Derived content from ["/Users/wooyoung.chung/Development/xxx/build/Logs/Test//Test-Transient Testing-2020.05.29_11-13-05--0700.xcresult", "/Users/wooyoung.chung/Development/messaging-ios/build/Logs/Test//LogStoreManifest.plist"]
[11:17:06]: Error occured while exporting xccovreport from xcresult '/Users/wooyoung.chung/Development/xxx/build/Logs/Test/Test-Transient Testing-2020.05.29_11-13-05--0700.xcresult'
[11:17:06]: Make sure you have both Xcode 11 selected and pointing to the correct xcresult file

but there is a xcresult file in the path. Any idea?

weird thing is sometime it works and sometimes it doesn't

it seems like if output path exists, it fails

it seems like if output path exists, it fails

I'm experiencing this behavior as well. I can get around this in my CI, but I feel like this is a bug.

πŸ‘‹ Hello! Would either of you be able to provide any more detail on this?

To be honest... I don’t use xcov in personal projects so also not with danger but I’m happy to look into! Would be good to have any info that you may have that would help πŸ€·β€β™‚οΈ

I'm actually not using Danger, just vanilla xcov (1.7.5). I just found this thread through googling the exact string "Error occured while exporting xccovreport from xcresult", and there were only like 2 hits.

I can't provide a solid example project, since I'm encountering this with one of my employer's projects, but I doubt it would be hard to reproduce. Here's my directory structure:

.
β”œβ”€β”€ [typical fastlane files]
β”œβ”€β”€ README.md
β”œβ”€β”€ report.xml
└── test_output
    β”œβ”€β”€ code-coverage
    β”‚   β”œβ”€β”€ index.html
    β”‚   β”œβ”€β”€ resources
    β”‚   β”‚   β”œβ”€β”€ application.css
    β”‚   β”‚   β”œβ”€β”€ application.js
    β”‚   β”‚   β”œβ”€β”€ bootstrap.min.css
    β”‚   β”‚   β”œβ”€β”€ bootstrap.min.js
    β”‚   β”‚   β”œβ”€β”€ file_cpp.png
    β”‚   β”‚   β”œβ”€β”€ file_objc.png
    β”‚   β”‚   β”œβ”€β”€ file_swift.png
    β”‚   β”‚   β”œβ”€β”€ jquery.min.js
    β”‚   β”‚   β”œβ”€β”€ main.css
    β”‚   β”‚   β”œβ”€β”€ main.js
    β”‚   β”‚   β”œβ”€β”€ opensans.css
    β”‚   β”‚   └── xcov_logo.png
    β”‚   β”œβ”€β”€ xccovarchive-0.xccovarchive
    β”‚   β”‚   β”œβ”€β”€ Coverage
    β”‚   β”‚   β”œβ”€β”€ Index
    β”‚   β”‚   └── Metadata.plist
    β”‚   └── xccovreport-0.xccovreport
    β”œβ”€β”€ report.html
    └── report.junit

All I'm doing to get around this is running a rm -rf ../fastlane/test_output/code-coverage before the next call to xcov.

Maybe the -0 on the .xccovarchive and .xccovreport is messing things up?

I really appreciate the info! I’ll try and find some time in my queue for this 😊

removing the xcov code coverage output before the next run allows it to succeed consistently

removing the xcov code coverage output before the next run allows it to succeed consistently

Correct, I would like to solve this bug@joshdholtz

worked for me when i used project parameter instead of workspace..

The below issue happened to me also

Error occured while exporting xccovreport from xcresult '/Users/wooyoung.chung/Development/xxx/build/Logs/Test/Test-Transient Testing-2020.05.29_11-13-05--0700.xcresult'
Make sure you have both Xcode 11 selected and pointing to the correct xcresult file

This issue happened because the root project folder contains old test report file.
delete the old report file before the unit test stage.

rm -rf ./fastlane/<<output_folder>>

unit_test:
  allow_failure: true
  stage: unit_test
  script:
   - rm -rf fastlane/xcov_report
   - bundle exec fastlane tests
  tags:

I have a weird experience with this. It was working with removing the file, like advised. Then I had problems and updated Ruby and Fastlane. I can see it getting removed and then added back after scan, but I still get the error.

I started to get the error too today :-/

This fails when the output folder exists the workaround is to delete a folder each time you run the command:

lane :coverage do
	top_dir = `git rev-parse --show-toplevel`.strip
	output_dir = "#{top_dir}/fastlane/output/coverage"
	# workaround if the output folder exists xcov fails
	if Dir.exist?(output_dir)
		FileUtils.remove_dir(output_dir)
	end
	xcov(
	  workspace: "Example/Example.xcworkspace",
	  scheme: "Example",
	  output_directory: output_dir,
	  markdown_report: true
	)
end

In our case it was due to the usage of an outdated dependency. After the dependency has been released using the newest Xcode version, the issue has been gone πŸ‘