VIII. Tests unitaires : Attributs additionnels▲
VIII-A. Attributs de comportement▲
VIII-A-1. Ignorer un (ou des) test(s)▲
Il est possible d'ignorer certains tests en utilisant l'attribut IgnoreAttribute. Il peut être placé sur une méthode ou sur une classe.
Si on le place sur une méthode, alors ce test ne sera pas exécuté.
Si on le place sur une classe, alors ce sont tous les tests de cette classe qui seront ignorés.
[TestClass]
[Ignore]
public
class
MaClasseDeTestAIgnorer
{
}
[TestClass]
public
class
AutreClasseDeTest
{
[Ignore]
public
void
MonTestAIgnorer
(
) {
}
}
Attention, il est également possible de désactiver un test. Pour cela il faut :
- visualiser le test dans la « Test View » ou dans le « Test List Editor » ; - clic droit sur le test et « Propriétés » ;
- indiquer « false » dans « Test Enabled ».
Un test ignoré n'apparaitra pas dans les listes de tests, alors qu'un test désactivé apparaitra grisé.
VIII-A-2. Déployer des fichiers▲
Nous avons vu que l'on pouvait déployer des fichiers en utilisant les fichiers de configuration des tests. Il est également possible de le faire par attribut. Ceci a deux avantages :
- ne déployer les fichiers que lors de l'exécution du test qui en a besoin (et non avant que le premier test ne soit exécuté) ;
- permettre de spécifier à quel endroit nous voulons déployer les fichiers (le répertoire de déploiement sera un sous-répertoire du répertoire de sortie standard)
[TestMethod]
[DeploymentItem(
"Fichier.txt"
)]
public
void
MonTest
(
) {
}
[TestMethod]
[DeploymentItem(
"Fichier.txt"
,
"RépertoireSortie"
)]
public
void
MonAutreTest
(
) {
}
Attention, vous ne pouvez utiliser dans cet attribut que des strings (« Ceci est une string » ) ou des verbatim string ( @« Ceci est une verbatim string »).
Vous ne pouvez en effet pas utiliser de constantes. Les tests étant exécutés par réflexion, les constantes que vous aurez utilisées ne seront pas encore initialisées lors de « l'exécution » de l'attribut.
Pour plus d'informations sur cet attribut, vous trouverez tous les renseignements nécessaires dans la bibliographie : « DeploymentItemAttribute. »
VIII-B. Attributs informationnels▲
Certains autres attributs existent également. Ils ne seront pas utilisés pas Visual Studio, mais peuvent permettre d'ajouter des informations supplémentaires, informations qui pourront être exploitées par le développeur ou via code.
VIII-B-1. Identifier le créateur du test▲
On peut utiliser l'attribut OwnerAttribute pour identifier le créateur du test.
[TestMethod]
[Owner(
"Pierre-Emmanuel Dautreppe"
)]
public
void
MonTest
(
) {
}
VIII-B-2. Donner une priorité aux tests▲
On peut utiliser l'attribut PriorityAttribute pour définir la priorité d'exécution du test. Notez cependant que cet attribut n'est pas utilisé par le moteur de test et n'est présent qu'à des fins d'extension par le développeur.
Pour permettre d'établir une notion d'ordre d'exécution, Visual Studio a introduit les OrderedTests. Ils ne seront cependant pas couverts dans ce document.
[TestMethod]
[Priority(
10
)]
public
void
MonTest
(
) {
}
VIII-B-3. Ajouter des propriétés aux tests▲
On peut utiliser l'attribut TestPropertyAttribute pour ajouter une propriété spécifique à un test. Cette propriété n'est pas utilisée par le moteur de test, mais permet (après un rebuild) de voir une nouvelle propriété dans l'onglet « Properties » après avoir sélectionné le test dans le « Test Manager » ou dans le « Test View ».
Cette propriété pourra être récupérée dans le test en utilisant la réflexion, comme pour n'importe quel attribut.
[TestMethod]
[TestProperty(
"MonNomDePropriete"
,
"MaValeur"
)]
public
void
MyTest
(
) {
}