2008-08-29 12 views
5

.regファイルをレジストリにプログラムでマージする最も良い方法は何ですか?これは単体テスト用です。 .regファイルはテストの成果物であり、追加されてテストの開始時と終了時に削除されます。プログラムで.regファイルをwin32レジストリにマージする

または、レジストリに対するユニットテストに良い方法があるかどう...

答えて

8

.regファイルを使用してレジストリキーを削除することはできますが、どのように文書化されているかわかりません。ここに方法は次のとおりです。

REGEDIT4 

[-HKEY_CURRENT_USER\Software\<otherpath>] 

キー名の前に-は、キーを削除したいRegeditを伝えます。黙ってこれを実行するには

、タイプ:ユニットテストを書くことについての最もイライラする事の

regedit /s "myfile.reg" 
2

私は私のファイルの関連付けをチェックアウトし、それに見えました。

Windows上で実行可能なregedit.exeの最初のパラメータとして.regファイルが呼び出されたようです。

だから、regedit.exe "mytest.reg"と言うことができます。私がよく分からないことは、あなたの確認を求めるダイアログボックスが表示されないようにする方法です。

1

Win32 API関数ShellExecute()またはShellExecuteEx()を使用します。コメントが「開いている」場合は、.regファイルをマージする必要があります。私はそれをテストしていないが、それは動作するはずです。

+0

「コメントが「開かれている」とはどういう意味ですか?」Johnny Mathis? –

0

一つは、依存関係を扱っています。 Test-Driven Developmentの最大の課題の1つは、依存関係から切り離されたコードを生成することです。冷静さ?

自分自身がこのような質問をしているとき、私は依存関係から書いているコードを切り離す方法を探します。テストしたい複雑さからレジストリを読みとります。

5

あなたが砲撃している場合は、私はregコマンドを使用します(詳細は後述)。あなたが働いている言語を教えていただけたら、言語固有のコードを提供することができます。

C:> reg /?

REG操作[パラメータリスト]

操作[QUERY |追加| | | SAVE | LOAD | UNLOAD | RESTORE | COMPARE |輸出| IMPORT | FLAGS]

戻りコード:(REGを除くCOMPARE)

0 - 成功 1 - 特定の操作タイプのヘルプについて

を失敗しました:

REGは/追加しますか? REG DELETE /? [snipped]

関連する問題