J'ai des tests basés sur le temps à exécuter qui nécessitent de modifier plusieurs fois le temps système pendant le test. Je veux pouvoir resynchroniser le temps au temps du contrôleur de domaine à la fin du test. J'y ai tout moyen de le faire en utilisant le code .NET (C #). Je change le temps en utilisant la fonction P-Invoke trouvée dans: P>
régler de manière programmatique à l'aide de C # P>
merci p>
4 Réponses :
Vous pouvez le faire à l'aide de l'outil de ligne de commande W32TM:
w32tm /resync
Un moyen facile serait de lancer un processus et d'exécuter la commande Time net (copiée de http://blogs.msdn.com/sanket/archive/2006/11/02/synchroniser-machine-time-withdomain-controller.aspx < / a>)
+1. C'est exactement ce que j'écris, vous vous battiez simplement. Joli.
Devrais-je voir la commande dans la fenêtre ouverte? Ça ne marche pas pour moi :(
Pouvez-vous s'il vous plaît suggérer quelque chose que je peux écrire à MydomainName?
@ Fantom789 je suppose que le temps.windows.com serait bon ou temps.nist.gov (mais cela ne fonctionne toujours pas pour moi
Le moyen le plus simple serait d'utiliser System.Diagnostics.process STROND> pour exécuter une commande exécution Ceci à partir d'une invite de commande pour voir de quoi je parle: p>
Désolé pour le double poste, Justin m'a battu.
comme un ajout aux autres réponses: p>
Vous devez envisager sérieusement de faire la notion de "heure actuelle" en quelque sorte injectable dans votre système. La lecture directe de l'horloge système est très problématique (même lors de l'exécution de l'application), précisément parce que c'est l'état mondial. P>
C'était définitivement ma première option, de faire quelque chose comme dans le message suivant Stackoverflow.com/questions/43711/... Malheureusement, je travaille avec une solution de plate-forme qui ne me donne pas accès à une telle chose . C'est soit cela, soit pas des tests de régression, et je n'aime pas l'alternative.