Marking Test Functions Using Custom Markers

Python 3: Automating Your Job Tasks Superhero Level: Automate Unit Testing with Python 3
4 minutes
Share the link to this page
You need to have access to the item to view this lesson.
One-time Fee
List Price:  $139.99
You save:  $40
List Price:  €128.51
You save:  €36.71
List Price:  £110.53
You save:  £31.58
List Price:  CA$190.63
You save:  CA$54.47
List Price:  A$208.90
You save:  A$59.69
List Price:  S$188.42
You save:  S$53.84
List Price:  HK$1,092.29
You save:  HK$312.10
CHF 91.18
List Price:  CHF 127.65
You save:  CHF 36.47
NOK kr1,073.95
List Price:  NOK kr1,503.58
You save:  NOK kr429.62
DKK kr686.39
List Price:  DKK kr960.97
You save:  DKK kr274.58
List Price:  NZ$228.20
You save:  NZ$65.20
List Price:  د.إ514.18
You save:  د.إ146.92
List Price:  ৳16,307.21
You save:  ৳4,659.53
List Price:  ₹11,661.24
You save:  ₹3,332.02
List Price:  RM656.20
You save:  RM187.50
List Price:  ₦205,785.30
You save:  ₦58,800
List Price:  ₨38,789.74
You save:  ₨11,083.57
List Price:  ฿5,038.70
You save:  ฿1,439.73
List Price:  ₺4,513.75
You save:  ₺1,289.73
List Price:  B$714.59
You save:  B$204.18
List Price:  R2,565.91
You save:  R733.17
List Price:  Лв251.83
You save:  Лв71.95
List Price:  ₩189,601.05
You save:  ₩54,175.60
List Price:  ₪516.98
You save:  ₪147.71
List Price:  ₱8,098.42
You save:  ₱2,313.99
List Price:  ¥21,792.94
You save:  ¥6,227
List Price:  MX$2,325.03
You save:  MX$664.34
List Price:  QR507.87
You save:  QR145.11
List Price:  P1,886.91
You save:  P539.15
List Price:  KSh18,172.80
You save:  KSh5,192.60
List Price:  E£6,553.98
You save:  E£1,872.69
List Price:  ብር7,998.81
You save:  ብር2,285.53
List Price:  Kz118,851.51
You save:  Kz33,960
List Price:  CLP$125,220.73
You save:  CLP$35,779.90
List Price:  CN¥1,011.17
You save:  CN¥288.92
List Price:  RD$8,157.46
You save:  RD$2,330.87
List Price:  DA18,848.39
You save:  DA5,385.64
List Price:  FJ$311.92
You save:  FJ$89.12
List Price:  Q1,081.96
You save:  Q309.15
List Price:  GY$29,135.07
You save:  GY$8,324.90
ISK kr13,781.37
List Price:  ISK kr19,294.47
You save:  ISK kr5,513.10
List Price:  DH1,386.51
You save:  DH396.17
List Price:  L2,464.07
You save:  L704.07
List Price:  ден7,916.55
You save:  ден2,262.03
List Price:  MOP$1,119.16
You save:  MOP$319.78
List Price:  N$2,547.77
You save:  N$727.98
List Price:  C$5,126.52
You save:  C$1,464.82
List Price:  रु18,565.58
You save:  रु5,304.83
List Price:  S/520.05
You save:  S/148.59
List Price:  K540.79
You save:  K154.52
List Price:  SAR524.96
You save:  SAR150
List Price:  ZK3,554.51
You save:  ZK1,015.64
List Price:  L640.62
You save:  L183.04
List Price:  Kč3,180.29
You save:  Kč908.72
List Price:  Ft49,813.32
You save:  Ft14,233.39
SEK kr1,071.59
List Price:  SEK kr1,500.27
You save:  SEK kr428.67
List Price:  ARS$123,415.66
You save:  ARS$35,264.13
List Price:  Bs962.21
You save:  Bs274.93
List Price:  COP$532,965.46
You save:  COP$152,286.72
List Price:  ₡71,270.84
You save:  ₡20,364.55
List Price:  L3,448
You save:  L985.21
List Price:  ₲1,043,416.42
You save:  ₲298,140.27
List Price:  $U5,431.06
You save:  $U1,551.84
List Price:  zł548.49
You save:  zł156.72
Already have an account? Log In


Another way of marking test functions is by using custom markers, which are markers that are defined by the user. To demonstrate this, I have created a new folder on my D drive called custom marking. And inside this folder, I saved the same application from the previous video, and the slightly modified version of the test module we used for analyzing built in markers. You can download the code for this lecture from the notebook that follows or you can write the code yourself while watching this video. Now, let's open up this calculation dot p y. First of all, notice that I have renamed two of the test functions.

These ones right here to test underscore lower value and test underscore higher value and you're going to understand why very soon. Also, I have removed the markers that we've discussed in the previous video. I've added a custom marker to each of the first three functions. As you can see right here, the custom marker is called my test. And consequently, I've decorated each test function using at pi test, pretty easy to define your own markers right. Now, why would you want to use custom markers in your code?

Well, simply because you may want to run only certain tests from this test suite. And using a custom marker is a great and simple way of referencing the desired tests at runtime. For example, I want to run only these three functions right here. When executing this test module. I can easily reference them by specifying the custom marker like this. So the CD custom marking and now I'm going to use PI test dash v dash dash disable warning dash m test, which is the marker, enter.

Great, so only the three tests I needed were executed. Actually, you can also notice that we have five tests that were collected from the test module, but only three of them have been selected. On the other hand, maybe I need to run all the tests except these three tests right here. To do that, I'm going to simply use the not keyword in the command line. So I'm going to use dash m, and in between double quotes, not my test. Sorry, my test, enter.

Okay, notice that this time we have three tests deselected the ones I marked with my custom marker, and two test being executed and passed. Pretty cool. The last thing I'll show you here is how to run certain tests based on their names or parts of their names. For this, we are going to need them The dash k option when using the PI test command, the dash k option will only run the tests which match a given substring expression. Let's see this in practice. Let's say that I want to run only the tests that have the substring lower in the name, I would then use the following command by test dash v dash dash disabled warning, dash K, lower, enter.

Okay, so this time from the five tests inside the module, four of them have been deselected since they don't match the naming criteria, and only the test underscore lower function has been executed as expected. On the other hand, if you need to run all the tests in the test module, except the ones matching a certain substring in their name, then you can use the not keyword here as well. So let me prove this to you. Dash K, not lower Okay, so this time, you can notice that the test underscore lower value function has been skipped. And all of the other tests in the module have been executed because their names do not include the specified substring. Pretty nice, pretty straightforward and definitely very useful.

I hope you've enjoyed this lecture as well and I will see you soon.

Sign Up


Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.