2010-01-05 5 views
2

J'ai quelques éléments de page divisés en blocs visuels séparés.Django - test de différents blocs visuels

Je suis en train d'intégrer les fichiers html frontaux du concepteur, il est donc important pour moi de tester leur apparence dans le navigateur individuellement (chaque bloc).

Quelle est la manière la plus simple de mettre en œuvre ceci en utilisant django-testing?

Je sais que je peux créer une vue avec tous les blocs et appeler cette page via twill ou sélénium. Je pense qu'il doit y avoir une commande spécifique de plate-forme plus simple que je peux utiliser dans les tests comme gnome-open render_to_string(abcd.html,{})

Me rappelle l'école de pensée de Joel qui embauche un «testeur» qui est discipliné et qui ne dérange pas ce truc ennuyeux de test encore et encore; mais je ne l'accepte pas nécessairement.

En outre, quelle est la manière la plus simple de spécifier à django d'utiliser un in-memory-sqlite-db pour le test, afin que le processus puisse être accéléré?

+0

Je suis un peu confus par l'utilisation de 'gnome-open'. Pourquoi voudriez-vous que les tests ouvrent de nouvelles applications? Ne devraient-ils pas être automatisés et autonomes? – notnoop

+0

notnoop: J'aimerais les tests pour ouvrir plusieurs onglets de navigateur avec un bloc chacun, donc je peux ** voir ** qu'ils apparaissent comme requis, à partir du modèle de conception html. –

Répondre

0

Sur la question sqlite d'utilisation pour les tests, vous pouvez spécifier un module de paramètres séparé (appelons-le test_settings) qui ne définit que les paramètres de la base de données. Puis exécuter comme:

manage.py test --settings=test_settings 

Dans ce fichier put:

from settings import * 
DATABASE_ENGINE = "sqlite3" 

Le coureur de test doit utiliser une base de données dans la mémoire par défaut si SQLite est spécifié. En ce qui concerne la vérification de la sortie des éléments individuels, cela dépend de ce que vous essayez d'atteindre. Si vous voulez dire que vous voulez regarder manuellement quelque chose dans un navigateur pour lui donner le bon résultat, je vous suggère d'écrire une commande de gestion pour le faire. Le coureur d'essai est mieux adapté aux choses qui peuvent être déterminées pour réussir ou échouer dans le code. Comme mentionné précédemment si cela est votre objectif, puis en sortie de fichier, puis en scriptant un navigateur pour ouvrir des onglets avec tous les fichiers dans un répertoire si c'est probablement une bonne idée. Vous pourriez trouver utile Watir pour cela, c'est une bibliothèque open-source (BSD) pour l'automatisation des navigateurs Web.

Si ce que vous avez peut être vérifié programatically (quelques trucs CSS, comparer à une image, trouver une chaîne dans la sortie), vous trouverez peut-être un travail que je fait passer des tests autour de CSS en utilisant le sélénium et Python utile (http://github.com/garethr/css-test)

0

Peut-être écrire le render_to_string() dans un fichier, puis lancer un navigateur avec ce fichier en tant que paramètre (en utilisant subprocess.call ou quelque chose de similaire)?