Question

J'ai écrit un tas de tests unitaires pour couvrir les fenêtres de Registre de lecture / écriture. Ils utilisent le CRegKey ATL api.

Ces belles travaillé sur ma machine de bureau de XP Pro, mais quand les tests sont à exécuter sur la machine de construction - Windows 2008 x64 serveur - les tests échouent avec ERROR_ACCESS_DENIED lorsque vous essayez de créer une clé via Créer

.

L'utilisateur qui est connecté à la machine de construction appartient au groupe de l'administrateur.

Google fait apparaître une liste de la façon de créer un registre dans le bloc-notes et msdn continue à me donner des pages manquantes lorsque je clique sur un lien.

Ce que je dois savoir est ce que je dois faire activer les tests à passer lors de l'exécution sur le serveur? Je suppose que cela nécessite des attributs de sécurité, mais je n'ai jamais puisé dans ce si je ne savoir où commencer. Toute aide serait appréciée.

Était-ce utile?

La solution

Les jours de programmes modifier ou créer des clés de registre globales sont terminées et fait avec. Il fonctionne toujours sur votre boîte de XP parce que vous vous connectez en tant qu'administrateur. Vista, Win7 et Windows 2008 ont UAC pour empêcher tout le monde (par exemple les logiciels malveillants) déconner avec le registre, même lorsque vous êtes connecté avec un compte administrateur.

Vous pouvez ajouter un manifeste à votre programme d'invoquer l'invite UAC, mais c'est tout à fait irréalisables pour les tests unitaires. Retravailler votre test unitaire pour écrire dans la ruche HKEY_CURRENT_USER à la place. La même considération vaut probablement le programme pour lequel vous avez écrit les tests.

Autres conseils

Il ne suffit pas d'être connecté en tant qu'administrateur; vos besoins de programme à exécuter avec des privilèges d'administration (à savoir l'utilisation d'un manifeste).

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