2.8.6: NoMethodError "undefined method 'first'" in profdata_coverage_dir whenever --scheme is used
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
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
- Run tests with code coverage enabled for an Xcode workspace.
- 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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de SlatherOrg/slather
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
SlatherOrg/slather#588 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
SlatherOrg/slather#582 · 1 comentario ·
-
is xcode 26 already supported?Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
SlatherOrg/slather#580 · 9 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 56/100
SlatherOrg/slather#578 · 3 comentarios · 1 reacción ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
SlatherOrg/slather#577 ·
Todos los issues de SlatherOrg/slather
Issues similares
-
dependencies Difficulty: Easy Good First Issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
rubyforgood/casa#7325 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 10 días