質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1756閲覧

PythonでなぜAssertionErrorが発生する標準出力がなぜされるのかが分からない

beatsX

総合スコア12

標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/08/20 08:00

Pythonの勉強中です。PyLintを使った簡単なテストを記述しました。このコードをスクリプトとして実行するとAssertionErrorが発生します。本来はエラーは発生せず、うまく機能するはずなのですがなぜエラーが起きるのか見当がつきません。my_math3は自作のモジュールです。よろしくおねがいします。

import unittest, my_math3 from subprocess import Popen, PIPE class ProductTestCase(unittest.TestCase): def test_integers(self): for x in range(-10, 10): for y in range(-10, 10): p = my_math3.product(x, y) self.assertEqual(p, x * y, 'Integerの乗算に失敗しました') def test_floats(self): for x in range(-10, 10): for y in range(-10, 10): x = x / 10 y = y /10 p = my_math3.product(x, y) self.assertEqual(p, x * y, 'Integerの乗算に失敗しました') def test_with_PyLint(self): cmd = 'pylint', '-rn', 'my_math3' pylint = Popen(cmd, stdout=PIPE, stderr=PIPE) self.assertEqual(pylint.stdout.read(), '') if __name__ == '__main__': unittest.main()
# my_math3 """ 単純な数学モジュール """ __revision__ = '0.1' def product(factor1, factor2): '2つの数の積' return factor1 * factor2

AssertionError:

1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dameo

2020/08/21 18:49

# なんか技術レベルがいろいろチグハグな感じの質問ですが、 # YakumoSakiさんの回答でよく分からなければ、参考にしてください。 # sed 's/^\xc2\xa0/ /;s/$/$/g;s/`/`/g;s/ /\x20\x20/g' <<__END_OF_TERMINAL_CODE__ >my_math3.py # my_math3 """ 単純な数学モジュール """ __revision__ = '0.1' def product(factor1, factor2):   '2つの数の積'   return factor1 * factor2 __END_OF_TERMINAL_CODE__ sed 's/^\xc2\xa0/ /;s/$/$/g;s/`/`/g;s/ /\x20\x20/g' <<__END_OF_TERMINAL_CODE__ >test.py """ my_math3.pyのテスト """ from subprocess import Popen import unittest import my_math3 class ProductTestCase(unittest.TestCase):   """   my_math3.pyのテストクラス   """   def test_integers(self):     """     productのテスト(integer)     """     for value_x in range(-10, 10):       for value_y in range(-10, 10):         value_product = my_math3.product(value_x, value_y)         self.assertEqual(value_product, value_x * value_y, 'Integerの乗算に失敗しました')   def test_floats(self):     """     productのテスト(float)     """     for value_x in range(-10, 10):       for value_y in range(-10, 10):         value_x = value_x / 10         value_y = value_y /10         value_product = my_math3.product(value_x, value_y)         self.assertEqual(value_product, value_x * value_y, 'Integerの乗算に失敗しました')   def test_with_pylint(self):     """     unittestなのになぜかpylint     """     cmd = 'pylint', 'my_math3'     with Popen(cmd) as pylint:       # ビジーループだけど       pylint.wait()       self.assertEqual(pylint.returncode, 0, 'PyLintが0を返しませんでした') if __name__ == '__main__':   unittest.main() __END_OF_TERMINAL_CODE__
guest

回答1

0

pylint -rn my_math3 を実行すると以下のような出力が得られました。

$ pylint -rn 'my_math3' -------------------------------------------------------------------- Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

おそらく、rateがいくつ以上ならOK的な判定をするか、
pylintの終了コードを見て成否を決めると、希望に近い動作になるかと思います。
https://docs.pylint.org/en/1.6.0/run.html#exit-codes

投稿2020/08/20 08:19

YakumoSaki

総合スコア2027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問