2011-09-09 6 views
19

¿Cómo puedo ejecutar pruebas paralelas en máquinas de doble núcleo conectadas a través de SSH en la misma red?carriles distribuidos pruebas en paralelo

https://github.com/grosser/parallel_tests funciona muy bien para los trabajadores locales, pero no hay manera de ejecutarlo en varias máquinas

https://github.com/qxjit/deep-test - No he tenido suerte al ejecutarlo, hay una línea en el ejemplo como

t.distributed_hosts 

que arroja un error

Con Hydra tengo un problema esperar por siempre para los trabajadores ssh

probé la versión alfa de bufé, creó un acuerdo de recompra de prueba y la pasó, pero sin suerte

fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 

Quiero correr unidad/integración/pruebas funcionales único estándar

Nada de extravagancias en absoluto.

+1

Crear su propia configuración de pruebas paralelas/distribuidas puede ser todo un desafío. Hemos tenido una gran suerte al utilizar un servicio llamado TDDium (http://www.tddium.com/) que lo gestiona, utilizando un servidor remoto git como Heroku para aceptar lotes de código para ejecutar. Los recomiendo mucho. – Winfield

+1

De la misma manera que Winfield, utilizamos CircleCi (http://circleci.com) para paralelizar nuestras pruebas con gran éxito. – Mitch

+0

¿Por qué parallel_tests no es adecuado para varias máquinas? ¿Y qué error arroja la prueba profunda? –

Respuesta

1

Si usted está dispuesto a ejecutar las pruebas en un servicio alojado CI, entonces hay un buen número de buenas opciones. Para sólo mencionar algunos aquí en ningún orden en particular:

  1. Travis CI (there is pro version for private repos)
  2. semáforo (Heroku complemento presente) parallelism even on the free plans
  3. Tddium (ya mencionado anteriormente)
  4. Codeship (Heroku complemento presente, seguro de cualquiera de la ayuda de la caja)
  5. Círculo CI (Parallelism on paid plans)
  6. Snap-CI (Pipeline parallelism que permite un mayor control, pero con una cierta configuración. también podrían ser la adición más soporte fuera de caja en el futuro)

He intentado todos ellos en mis proyectos a diferentes niveles, y todos funcionan bien. Las diferencias serían principalmente en cómo los precios tienen un precio. Si no le importa pagar las suscripciones, sería mejor confiar en estos servicios en lugar de tratar de lidiar con la molestia de dividir las pruebas en procesos. Por supuesto, la excepción sería si lo hace a una escala lo suficientemente grande como para justificar el ahorro de costos en ese caso.

Algunos otros puntos a tener en cuenta:

  • paralelismo dentro del mismo proceso todavía le puede dar buenos resultados en una caja lo suficientemente fornido (con más núcleos) sin mucho esfuerzo debe ser su primera chocie, a menos que ya se han agotado las opciones.
  • Si su objetivo final es acelerar las pruebas, observe algunos beneficios que ofrece Travis-CI con un mejor sistema de archivos y una base de datos en memoria. (No estoy seguro de esto)
  • Si todavía planea configurarlo por su cuenta, debe consultar GoCD, en combinación con TestLoadBalancer (mencionado anteriormente).
  • Tenga en cuenta que si el problema que intenta resolver es un conjunto de pruebas cada vez mayor en un proyecto suficientemente grande, es posible que desee comenzar a pensar activamente en dividir sus pruebas lógicamente y acelerarlas, ya que el paralelismo solo logra retrasar lo último problema de un conjunto de pruebas de larga ejecución no lo resuelve por completo.
2

Puede comprobar Testributor.

Creado para este propósito. Le permite ejecutar sus pruebas en paralelo usando muchos núcleos en una determinada computadora o en varias computadoras con equilibrio y distribución de carga automática.

Genera un archivo de redacción de portador utilizando las tecnologías seleccionadas.

Solo tiene que descargar el archivo docker compose y ejecutarlo usando Docker con docker-compose up.

Eso es todo.

Descargo de responsabilidad: Soy un desarrollador web en Testributor. Pero realmente creo que puede ayudarte.

Cuestiones relacionadas