2009-05-12 4 views
4

J'ai un assembly qui doit se trouver dans le répertoire de sortie de test pour que mes tests s'exécutent. J'ai l'assembly référencé comme une copie locale dans le projet, mais sur le serveur de construction, cela est ignoré. Les deux façons j'ai trouvé pour résoudre ce problème sontTFS UnitTesting ne déploie pas d'assembly de copie local pour tester le répertoire sur le serveur de génération

  1. Ajouter un attribut spécial pour tester la méthode qui fera que le fichier est là pour chaque test.

    [DeploymentItem (« mon assemblée »)]

    Ce n'est pas très pratique car cet ensemble est nécessaire pour presque tous les tests dans l'assemblée.

  2. Ajouter un fichier de configuration d'exécution de test avec une section de déploiement spéciale. J'utilise un TestContainer dans mes scripts de construction pour exécuter les tests. Je pense que c'est peut-être la raison pour laquelle mon test d'exécution inclus n'est pas récupéré et l'assemblage n'est pas copié. Je préférerais ne pas avoir un fichier de liste de test vsmdi car j'essaie d'exécuter tous les tests et je pense que ce serait une violation de DRY.

Des suggestions sur comment faire fonctionner mes tests?

+1

Votre ensemble de test fait-il explicitement référence aux types présents dans l'ensemble "Mon assemblage"? Si ce n'est pas pour une raison quelconque, comme le chargement dynamique des types, cela pourrait être le problème. –

+0

J'utilise SQLite dans la base de données de mémoire avec NHibernate. L'assembly SQLite est chargé dynamiquement par NHibernate. J'ai inclus une référence dans l'ensemble de test, mais il n'y a pas de référence aux types. Je vais essayer d'ajouter une référence de type explicite lorsque je configure mes tests, voir si ça aide. –

Répondre

3

Au fur et à mesure que mon assembly était chargé dynamiquement, le framework de test unitaire ne le copiait pas. Je lui ai ajouté une réfrence explicite en appelant typeof sur l'un des types de l'assembly et tout va bien.

Merci Jerome Laban pour votre aide avec celui-ci.

+0

J'ai eu le même problème et stackoverflow sauvé ma journée :) – thijs

Questions connexes