Pytestどうやってskypスキップでテストを実行しますか?


1、@pytest.mark.skyp(reason=")--試験関数のスキップ
不必要な引数reasonが原因を表すものとして伝えられます。

import pytest
@pytest.mark.skip(reason="no reason")
def test_01():
  print("---  a  ---")
class TestCase():
  @pytest.mark.skip(reason="no reason")
  def test_02(self):
    print("---  b  ---")

  def test_03(self):
    print("---  c  ---")
出力結果:
test_fixture 2.py ss---用例cで実行---
2、@pytest.mark.skyipif--conditionを満足するなら、テスト関数をスキップする
入力conditionパラメータは判断条件であり、着信非必須パラメータreasonを選択することができる。複数のタブが一緒に使用されている場合、一つのスキップ条件を満たすとテスト関数がスキップされます。

import pytest
def test_01():
  print("---  a  ---")
class TestCase():
  #   @pytest.mark.skipif()   ,     ,       
  @pytest.mark.skipif(condition='a' >= 'b', reason="no reason")
  @pytest.mark.skipif(condition='a' <= 'b', reason="no reason")
  def test_02(self):
    print("---  b  ---")

  def test_03(self):
    print("---  c  ---")
出力結果:
test_fixture 2.py---用例aで実行---
.s---用例cで実行---
3、カスタム@pytest.mark.skyp()ラベル
myskyp=pytest.mark.skyp()またはmyskyp=pytest.mark.skyif(condition=...)
ラベルの代わりにこの変数を使えばいいです。

import pytest
# myskip = pytest.mark.skip()
myskip = pytest.mark.skipif(condition=2>1, reason="no reason")

@myskip
def test_01():
  print("---  a  ---")

class TestCase():

  @myskip
  def test_02(self):
    print("---  b  ---")

  def test_03(self):
    print("---  c  ---")
出力結果:
test_fixture 2.py ss---用例cで実行---
4、pytest.skyp()でテスト関数をスキップする

import pytest

def test_01():
  pytest.skip(msg="no reason")
  print("---  a  ---")

class TestCase():

  def test_02(self):
    pytest.skip()
    print("---  b  ---")

  def test_03(self):
    print("---  c  ---")
出力結果:
test_fixture 2.py ss---用例cで実行します。
5、試験クラスをスキップする
テストクラスをスキップするのはスキップテストと同じです。@pytest.mark.sky()と@pytest.mark.skyif()の2つのラベルを使ってテストクラスを装飾すればいいです。

import pytest
myskip = pytest.mark.skip(reason="no reason")
def test_01():
  print("---  a  ---")
@myskip
class TestCase():
  def test_02(self):
    print("---  b  ---")
  def test_03(self):
    print("---  c  ---")
出力結果:
test_fixture 2.py---用例aで実行---
6、モジュールをスキップする
pytestmark(変数名を変更できません)変数を使って、彼をラベルに等しくすればいいです。

import pytest

pytestmark = pytest.mark.skip(condition=2>1, reason='no reason')

def test_01():
  print("---  a  ---")

class TestCase():

  def test_02(self):
    print("---  b  ---")

  def test_03(self):
    print("---  c  ---")
出力結果:
test_fixture 2.py sss
7、pycharmで複数のテストファイルを実行する
実行するファイル名を順に後ろに書いてください。カンマで区切って、チェーン元などの形式がありません。

if __name__ == "__main__":
  pytest.main(['-s', 'test_fixture1.py', 'test_fixture2.py'])
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。