2011-11-25 16 views
8

Cuando uso el Jasmine Rubygem, me resulta extremadamente molesto que tenga que conformarme con la estructura del directorio generado que tiene una subcarpeta javascripts dentro de la carpeta spec. Lo encuentro inútil ya que estoy escribiendo completamente en Javascript.¿Cómo puedo personalizar la estructura de directorios de Jasmine?

Me parece que puedo cambiar esta dentro de la carpeta public cambiando el jasmine.yml generado, sin embargo, esto no es lo que quería ya que todavía tengo que mantener la carpeta javascripts conmigo.

¿Hay alguna forma de personalizar esta estructura de carpetas?

Respuesta

5

Así es como lo hice con la gema jazmín 1.0.2.1:

1) personalizar el archivo jasmine_config.rb reemplazar el método simple_config_file para que apunte a la ruta del archivo yml correcta. Este archivo se genera inicialmente en spec/javascripts/support/jasmine_config.rb. Como se ve en la fuente de github (https://github.com/pivotal/jasmine-gem/blob/v1.0.2.1/lib/jasmine/config.rb), el método está codificado para usar:

def simple_config_file 
    File.join(project_root, 'spec/javascripts/support/jasmine.yml') 
end 

que querían cambiar el nombre de mi directorio 'spec' a 'prueba' de modo que la parte superior de mi archivo jasmine_config.rb se ve así:

module Jasmine 
    class Config 
    def simple_config_file 
     File.join(project_root, 'test/javascripts/support/jasmine.yml') 
    end 
    end 
end 

2) Fuerza de desprendimiento para cargar el archivo de configuración. Hice esto agregando la línea:

require 'test/javascripts/support/jasmine_config.rb' 

inmediatamente después de requerir jazmín en mi Rakefile.

3) Actualice jasmine.yml (también en la carpeta de soporte) para indicar dónde viven sus archivos de prueba de JavaScript. Mi archivo yml ahora termina con esto:

# EXAMPLE: 
# 
# spec_dir: spec/javascripts 
# 
spec_dir: test/javascripts 

Por supuesto, debe ajustar esa ruta "prueba" para que sea la que desea.

Creo que este enfoque debería funcionar con la última versión de la gema, pero este enfoque se romperá en el futuro si cambian la interfaz de esa clase de configuración.

Cuestiones relacionadas