Doch schon gleich der nächste Versuch. Dieser hat jedoch keinen Erfolg.
Es geht um das Modul wo ich den meisten Code gemacht habe. Im Gegensatz zum vorigen Versuch enthält dieser auch Klassen und Generics.
Der Wizard scheint seine Sache noch richtig zu machen. CodeCoverage.exe startet. Nach Prozess-Explorer wird auch das Testprojekt gestartet. Dann hängt CodeCoverage.exe lange Zeit mit ca. 8% CPU. Das Testprojekt zeigt sich jedoch überhaupt nicht. Nach langer Zeit ist die Sache zu Ende. Der Report ist da, jedoch ist die Coverage bei 0.
Bin nun im Debugger und bin nun hier.
Delphi-Quellcode:
function TDebugger.StartProcessToDebug: Boolean;
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
Parameters: string;
WorkingDir: PChar;
begin
Parameters := FCoverageConfiguration.ApplicationParameters;
FLogManager.Log(
'Trying to start ' + FCoverageConfiguration.ExeFileName +
' with the Parameters :' + Parameters);
FillChar(StartInfo, SizeOf(TStartupInfo), #0);
FillChar(ProcInfo, SizeOf(TProcessInformation), #0);
StartInfo.cb := SizeOf(TStartupInfo);
StartInfo.dwFlags := STARTF_USESTDHANDLES;
StartInfo.hStdInput := GetStdHandle(STD_INPUT_HANDLE);
StartInfo.hStdOutput := GetStdHandle(STD_OUTPUT_HANDLE);
StartInfo.hStdError := GetStdHandle(STD_ERROR_HANDLE);
WorkingDir := nil;
if FCoverageConfiguration.UseTestExePathAsWorkingDir then
begin
WorkingDir := PChar(ExtractFilePath(FCoverageConfiguration.ExeFileName));
end;
Parameters := '"' + FCoverageConfiguration.ExeFileName + '" ' + Parameters;
Result := CreateProcess(
nil,
PChar(Parameters),
nil,
nil,
True,
CREATE_NEW_PROCESS_GROUP + NORMAL_PRIORITY_CLASS + DEBUG_PROCESS,
nil,
WorkingDir,
StartInfo,
ProcInfo
);
FProcessID := ProcInfo.dwProcessId;
end;
Ich meine danach sollte das Testprojekt sichtbar sein. Was könnte da schief gehen?
Einige Werte:
Code:
Watch Name Value
Parameters '"J:\Bla\sysWin32\TestDomainBlub.exe" '
WorkingDir nil {#0}
StartInfo (68, nil {#0}, nil {#0}, nil {#0}, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, nil, 156, 160, 164)
ProcInfo (508, 504, 15152, 11800)
WorkingDir zu setzen hat nichts gebracht.
Nachtrag: Habe in TDebugger.ProcessDebugEvents den Timeout erhöht. Er kommt nun nicht mehr bei "FLogManager.Log('Wait For Debug Event timed-out');" vorbei, hilft aber insgesamt auch nicht.