Pregunta

Solo para comenzar, soy extremadamente nuevo para probar mis libros de cocina. Ahora he estado trabajando en libros de cocina durante un par de meses y entiende las cosas bastante bien, pero nuestro proyecto ha sido muy laxo en la adición de pruebas. Estoy intentando arrastrarnos a probarlos también.

Mi prueba, ya que está ahora, verifica que un servicio ha comenzado. Mi problema es que llame a la prueba un éxito, me gustaría verificar realmente como verificar, a través del archivo de registro de inicio de arriba, que el software lo realizó a través de sus pasos de inicio. Uno de estos pasos es ponerse en contacto con un servidor de RabbitMQ y registrarse para escuchar cuatro intercambios separados. Esto toma algún tiempo.

Estaba buscando usar lo siguiente:

describe_recipe 'my_cookbook::test' do

  it " testing that the service is running" do
    service('foo').must_be_running
  end

  it " testing that the log file contains We're Up!" do
    file('/var/log/upstart/foo').must_include 'We're Up!'
  end

end

... pero obtengo un fracaso porque intenta verificar el registro de inicio de inicio antes de incluso ha sido creado por el servicio. Incluso si pudiera esperar hasta que se haya creado el archivo, realmente necesito crear una demora, digamos, 5 segundos, durante los cuales se establecerán las conexiones de RabbitMQ.

¿Alguien sabe cómo lidiar con este problema de tiempo?

¿Fue útil?

Solución

Aunque también sugeriría, ya que Sethvargo hizo por mí, investigando la cocina de prueba, en caso de que alguien más necesite la capacidad de agregar duermes a sus minitas, se puede hacer de esta manera:

it "sleeping" do; puts "need to say something here or the sleep will not happen at the right time"; sleep 5; end

Un poco de problemas hackish y de tiempo nunca debe resolverse por sleeps, pero no supongo que para saber lo que podría necesitar; -)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top