Come terminare un programma quando si blocca? (che dovrebbe fallire un test unitario invece di rimanere bloccato per sempre)

La nostra unità verifica i processi secondari e talvolta questi processi figlio si bloccano. In questo caso, viene visualizzata una finestra di dialogo Segnalazione errori di Windows e il processo rimane attivo finché non viene chiuso manualmente. Questo ovviamente impedisce che i test unitari finiscano mai.

Come può essere evitato?


Ecco una finestra di esempio in Win7 con le solite impostazioni:

alt text

Se disattivo la chiave di registro AeDebug , l’opzione di debug JIT scompare:

alt text

Se disattivo il controllo per le soluzioni (l’unica cosa che sembra avere il controllo tramite il pannello di controllo), sembra come questo, ma appare ancora e ancora impedisce al programma di morire finché l’utente non preme qualcosa. Anche WerAddExcludedApplication è documentato per avere questo effetto.

alt text