Использование unittest (начиная с 3.4)
Поскольку Python 3.4, стандартный библиотечный пакет unittest
имеет контекстный менеджер subTest
.
См. документацию:
Пример:
from unittest import TestCase
param_list = [('a', 'a'), ('a', 'b'), ('b', 'b')]
class TestDemonstrateSubtest(TestCase):
def test_works_as_expected(self):
for p1, p2 in param_list:
with self.subTest():
self.assertEqual(p1, p2)
Вы также можете укажите настраиваемое сообщение и значения параметра в subTest()
:
with self.subTest(msg="Checking if p1 equals p2", p1=p1, p2=p2):
Использование носа
Рамка носа носа поддерживает этот .
Пример (приведенный ниже код содержит все содержимое файла, содержащего тест):
param_list = [('a', 'a'), ('a', 'b'), ('b', 'b')]
def test_generator():
for params in param_list:
yield check_em, params[0], params[1]
def check_em(a, b):
assert a == b
Выход команды nosetests:
> nosetests -v
testgen.test_generator('a', 'a') ... ok
testgen.test_generator('a', 'b') ... FAIL
testgen.test_generator('b', 'b') ... ok
======================================================================
FAIL: testgen.test_generator('a', 'b')
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/nose-0.10.1-py2.5.egg/nose/case.py", line 203, in runTest
self.test(*self.arg)
File "testgen.py", line 7, in check_em
assert a == b
AssertionError
----------------------------------------------------------------------
Ran 3 tests in 0.006s
FAILED (failures=1)
У меня есть объект календаря, который приведен ниже 08 августа 2014.
blockquote>Это не:
MONTH=8
- сентябрь, а не август (нумерация месяца начинается с нуля) .Вы можете проверить себя, отметив
DAY_OF_YEAR=251
в своем выходе. 251-й день непикового года - 8 сентября .Еще один способ проверить метку времени - вставить
1410177767000
в http: //www.epochconverter .com /
GregorianCalender занимает месяц в августе, а «7», а не «8», поскольку январь представлен как «0». Ссылка: Грегорианский календарь
Просьба проверить следующее, и оно должно работать.
import java.util.*;
public class Test {
public static void main(String args[]) {
GregorianCalendar myCal = new GregorianCalendar(2014, 7, 8);
System.out.println(myCal.get(Calendar.DAY_OF_WEEK));
}
}