Qual è un buon metodo per interrogare i processi per il loro aiuto o l'origine del framework, specialmente in Windows?
Ho un modulo di test automatizzato che interroga i binari che si adattano a un modello di nome speciale con --help
per vedere quale framework di test, se esiste, è stato usato per compilare quel binario di test, in modo che possa dare un comando speciale a seconda sull'obiettivo della modalità test.
Il problema è che dal momento che non sarà usato solo da me, prevedo che i binari che richiedono l'interazione manuale prima di uscire saranno attivati per la legge di Murphy e successivamente non riescono ad uscire da soli.
Preferirei che il mio modulo fosse abbastanza robusto per gestire questo scenario, quindi ho pensato di avviare quel processo all'interno di un altro processo, ottenere il suo PID e impostare una sorta di modello di osservatore per monitorarlo in modo significativo nel tempo o eventi attivati , quale che sia il primo.
Non prevedo problemi con questo, il che mi preoccupa :) Mi sento come se mi mancasse un'importante caso d'angolo attualmente nebuloso. Mi chiedo anche se ci sia un modo migliore per controllare i binari per le loro origini del framework usate rispetto alle query di --help
per cercare i modelli di output dei messaggi della guida framework.
Mi piacerebbe davvero saltare l'intero, eseguendo i binari ciecamente per capire che tipo di binario di test sono, passo, ma non so se posso farlo in modo affidabile, dinamico, con un approccio generico.
- L'origine di un binario, se creata all'interno di un framework, può essere in qualche modo rilevata in un modo non specifico del framework oltre a una query di aiuto? Ciò include approcci comuni che non sono necessariamente universalmente abbracciati, o approcci comuni distribuiti da ogni quadro in modo semplice; nel senso, potrei fare una manciata di piccoli moduli per i framework supportati che sono noti. (risposta nei commenti)
- Se utilizzo un processo dedicato per verificare lo stato di un processo che ho avviato, posso gestire in modo sicuro tutte le risposte del processo generato? Arresti, mancanza di risposta, ecc. Roba del genere. Ad esempio, se una DLL mancante attiva un pop-up di errore anche quando viene lanciato dalla riga di comando.