コード例 #1
0
ファイル: NoDepsAppTests.cs プロジェクト: tahajahangir/sdk
        public async Task RestartProcessThatTerminatesAfterFileChange()
        {
            var testAsset = _testAssetsManager.CopyTestAsset(AppName)
                            .WithSource()
                            .Path;

            using var app = new WatchableApp(testAsset, _output);

            await app.StartWatcherAsync();

            var processIdentifier = await app.GetProcessIdentifier();

            await app.HasExited(); // process should exit after run

            await app.IsWaitingForFileChange();

            var fileToChange = Path.Combine(app.SourceDirectory, "Program.cs");

            try
            {
                File.SetLastWriteTime(fileToChange, DateTime.Now);
                await app.HasRestarted();
            }
            catch
            {
                // retry
                File.SetLastWriteTime(fileToChange, DateTime.Now);
                await app.HasRestarted();
            }

            var processIdentifier2 = await app.GetProcessIdentifier();

            Assert.NotEqual(processIdentifier, processIdentifier2);
            await app.HasExited(); // process should exit after run
        }