2

これは私のプログラムにあるフローです

277: try:
278:    with open(r"c:\afile.txt", "w") as aFile:
...:        pass # write data, other exceptions/errors can occur here that have to be handled by the caller
329: except IOError as ex:
...:    print ex
332: finally:
333:    if os.path.exists(r"c:\afile.txt"):
334:        shutil.copy(r"c:\afile.txt", r"c:\dest.txt")

278行目から333行目までを除くすべてのパスをカバーしました

  • 私は通常の幸せな流れを得ました。
  • __builtin__.open上記のファイル名で open が呼び出されたときに IOError を発生させるようにスタブしました

しかし、どうすれば 278 から 333 にできますか? これは可能でしょうか?


追加情報: - coverage.py 3.4を使用(3.5 にアップグレードすることはできません)

4

2 に答える 2

2

Daan、これはcoverage.pyのバグを表している可能性があります。あなたの説明から、ブランチ カバレッジを使用していて、coverage.py が 278-333 がないと主張していると思います。これを再現可能なテスト ケースに落とし込める場合は、チケットを作成します。

于 2012-04-13T12:11:09.227 に答える
0

通常、次の方法でフローを処理します

try:
    with open(r"C:\file.txt", "w") as aFile:
        a.File.write("!")
    if os.path.exists(r"C:\file.txt"):
        shutil.copy(r"C:\file.txt", r"C:\dest.txt")
except IOError as ex:
    print ex
于 2012-04-12T11:25:41.213 に答える