Question

Les deux endroits évidents que je peux penser serait une sorte de dossier « test » juste à côté du code que je travaille. Donc, quelque chose comme:

\project-code
    \my-feature
        \production-code
        \testing
            ***my tests***
    \co-workers-feature
        \production-code
        \testing

Ou je pourrais diviser le code d'essai d'une hiérarchie complètement séparée. Donc, quelque chose comme:

\project-code
    \my-feature
    \co-workers-feature
\testing-project-code
    \my-feature
        ***my tests***
    \co-workers-feature

Je l'ai vu beaucoup de cadres utilisent la deuxième approche, mais récemment nous avons Prêcher code de test dans le code de production principalement pour des raisons pratiques. Est-ce une approche beaucoup mieux que l'autre ou est-il une meilleure pratique ici?

Était-ce utile?

La solution

J'utilise la deuxième option. Cela signifie que je peux expédier le code sans tests en cas de besoin. Aussi de regarder la classe ou de l'emballage, je sais où les tests unitaires pour ce sont.

Voici une question connexe:

Est-ce que vous mettez des tests unitaires en même projet ou un autre projet?

Autres conseils

Mettez où il est plus pratique pour vous. Vous pouvez configurer votre système de construction pour les retirer du produit final, si on le souhaite. Le test est une « meilleure pratique ». Tout ce qui rend les tests plus facile sans réduire son efficacité est tout simplement une amélioration des meilleures pratiques.

Je préfère garder les tests unitaires proches. Je l'ai vu l'option 1 bien. Pour un petit projet, les deux approches fonctionnent très bien, mais que le projet devient de plus en plus, il est plus difficile de trouver et de maintenir des tests quand ils vivent dans une partie très différente de l'arbre. Si elles sont proches, les changer sera naturel lorsque vous modifiez le code produit. Si elles sont loin, il faut faire un effort plus mental et sera ignoré plus. Cela signifie une plus grande chance qu'ils seront désynchronisés.

Notez que pour ce faire, vous avez besoin d'un système qui permet de faire la compilation conditionnelle des répertoires de test. Vous ne voulez pas avoir à les construire à chaque fois. Si vous ne pouvez pas obtenir cela, un arbre séparé pourrait être nécessaire.

Si son un site Web que vous contrôlez alors il ne fait pas mal d'avoir tout dans le même dossier. Si son logiciel classique que vous relâchez alors il a tendance à être une bonne pratique de l'avoir séparé comme dans le cas 2, de sorte que vous ne causez pas accidentellement ballonnement lorsque vous relâchez.

Pour moi, la première option est plus logique, en particulier d'un point de vue SCM: code de production et le code de test sont bien conservés dans la synchronisation (comme ils le devraient) et, si vous marquez ou une branche de votre projet, vous marquez ou branche à la fois le code de production et de test dans le même temps (comme ils le devraient).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top