2.8.6: NoMethodError "undefined method 'first'" in profdata_coverage_dir whenever --scheme is used

Cerrado Apto para principiantes
#586 4 comentarios 4 reacciones 0 asignados Ver en GitHub

Ya se ha fusionado un pull request relacionado.

  • #587 de @MirekNalepa — fusionado

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
70/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
ruby
Área
tooling

Línea de trabajo

Empieza por Project#profdata_coverage_dir en lib/slather/project.rb:237, identificado por el stack trace, y sigue cómo --scheme selecciona el directorio de cobertura. Reproduce el problema con el comando documentado slather coverage en un workspace de Xcode y confirma después que el comando genera un informe de cobertura sin producir NoMethodError.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Since 2.8.6, any slather coverage run with a scheme (--scheme or scheme: in .slather.yml) fails in Project#profdata_coverage_dir with a NoMethodError.
2.8.5 works with the same project and command.

Environment
slather: 2.8.6 (works on 2.8.5)
Ruby: 4.0.7
Xcode: 26.2
CI: Azure Pipelines, Microsoft-hosted macOS agent
macOS: macos-latest

Steps to reproduce

  1. Run tests with code coverage enabled for an Xcode workspace.
  2. Run:
gem install slather -v 2.8.6
slather coverage --cobertura-xml --output-directory test-reports/xml --scheme <SchemeName>

Expected
A coverage report is generated, as it is on 2.8.5.

Actual

/usr/local/lib/ruby/gems/3.3.0/gems/slather-2.8.6/lib/slather/project.rb:237:in `profdata_coverage_dir': undefined method `first' for nil (NoMethodError)
          end.first
             ^^^^^^
	from /usr/local/lib/ruby/gems/3.3.0/gems/slather-2.8.6/lib/slather/project.rb:568:in `find_binary_files'
	from /usr/local/lib/ruby/gems/3.3.0/gems/slather-2.8.6/lib/slather/project.rb:498:in `configure_binary_file'
	from /usr/local/lib/ruby/gems/3.3.0/gems/slather-2.8.6/lib/slather/project.rb:370:in `configure'
	from /usr/local/lib/ruby/gems/3.3.0/gems/slather-2.8.6/lib/slather/command/coverage_command.rb:62:in `execute'
	from /usr/local/lib/ruby/gems/3.3.0/gems/clamp-1.5.2/lib/clamp/command.rb:66:in `run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/clamp-1.5.2/lib/clamp/subcommand/execution.rb:18:in `execute'
	from /usr/local/lib/ruby/gems/3.3.0/gems/clamp-1.5.2/lib/clamp/command.rb:66:in `run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/clamp-1.5.2/lib/clamp/command.rb:140:in `run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/slather-2.8.6/bin/slather:17:in `<top (required)>'
	from /usr/local/lib/ruby/site_ruby/3.3.0/rubygems.rb:305:in `load'
	from /usr/local/lib/ruby/site_ruby/3.3.0/rubygems.rb:305:in `activate_and_load_bin_path'
	from /usr/local/lib/ruby/gems/3.3.0/bin/slather:25:in `<main>'
undefined method `first' for nil
Lenguaje dominante
Ruby
Estrellas
1.6k
Forks
239
Merge medio
1 d 9 h
PR fusionados (30 d)
2

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de SlatherOrg/slather

Todos los issues de SlatherOrg/slather

Issues similares

Más issues de Ruby

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.