Best Python code snippet using pytest-bdd_python
test_systematic.py
Source:test_systematic.py  
1from __future__ import absolute_import2import autograd.numpy.random as npr3import autograd.numpy as np4import operator as op5from numpy_utils import (combo_check, stat_check, unary_ufunc_check,6                         binary_ufunc_check, binary_ufunc_check_no_same_args)7npr.seed(0)8# Array statistics functions9def test_max():  stat_check(np.max)10def test_all():  stat_check(np.all)11def test_any():  stat_check(np.any)12def test_max():  stat_check(np.max)13def test_mean(): stat_check(np.mean)14def test_min():  stat_check(np.min)15def test_sum():  stat_check(np.sum)16def test_prod(): stat_check(np.prod)17def test_var():  stat_check(np.var)18def test_std():  stat_check(np.std)19# Unary ufunc tests20def test_sin():         unary_ufunc_check(np.sin)21def test_abs():         unary_ufunc_check(np.abs, lims=[0.1, 4.0])22def test_absolute():    unary_ufunc_check(np.absolute, lims=[0.1, 4.0])23def test_abs_builtin(): unary_ufunc_check(abs, lims=[0.1, 4.0])24def test_arccosh():     unary_ufunc_check(np.arccosh, lims=[1.1, 4.0])25def test_arcsinh():     unary_ufunc_check(np.arcsinh, lims=[-0.9, 0.9])26def test_arctanh():     unary_ufunc_check(np.arctanh, lims=[-0.9, 0.9])27def test_ceil():        unary_ufunc_check(np.ceil, lims=[-1.5, 1.5], test_complex=False)28def test_cos():         unary_ufunc_check(np.cos)29def test_cosh():        unary_ufunc_check(np.cosh)30def test_deg2rad():     unary_ufunc_check(np.deg2rad, test_complex=False)31def test_degrees():     unary_ufunc_check(lambda x : np.degrees(x)/50.0, test_complex=False)32def test_exp():         unary_ufunc_check(np.exp)33def test_exp2():        unary_ufunc_check(np.exp2)34def test_expm1():       unary_ufunc_check(np.expm1)35def test_fabs():        unary_ufunc_check(np.fabs, test_complex=False)36def test_floor():       unary_ufunc_check(np.floor, lims=[-1.5, 1.5], test_complex=False)37def test_log():         unary_ufunc_check(np.log,   lims=[0.2, 2.0])38def test_log10():       unary_ufunc_check(np.log10, lims=[0.2, 2.0])39def test_log1p():       unary_ufunc_check(np.log1p, lims=[0.2, 2.0])40def test_log2():        unary_ufunc_check(np.log2,  lims=[0.2, 2.0])41def test_rad2deg():     unary_ufunc_check(lambda x : np.rad2deg(x)/50.0, test_complex=False)42def test_radians():     unary_ufunc_check(np.radians, test_complex=False)43def test_sign():        unary_ufunc_check(np.sign)44def test_sin():         unary_ufunc_check(np.sin)45def test_sinh():        unary_ufunc_check(np.sinh)46def test_sqrt():        unary_ufunc_check(np.sqrt, lims=[1.0, 3.0])47def test_square():      unary_ufunc_check(np.square, test_complex=False)48def test_tan():         unary_ufunc_check(np.tan, lims=[-1.1, 1.1])49def test_tanh():        unary_ufunc_check(np.tanh)50def test_real():        unary_ufunc_check(np.real)51def test_real_ic():     unary_ufunc_check(np.real_if_close)52def test_imag():        unary_ufunc_check(np.imag)53def test_conj():        unary_ufunc_check(np.conj)54def test_angle():       unary_ufunc_check(np.angle)55def test_ldexp():       unary_ufunc_check(lambda x: np.ldexp(x, 3), test_complex=False)56def test_ldexp_neg():   unary_ufunc_check(lambda x: np.ldexp(x, -2), test_complex=False)57# Re-add these tests once we switch to new refactoring that gets rid of NoDerivativeNode58# def test_frexp():       unary_ufunc_check(lambda x: np.frexp(x)[0], lims=[2.1, 2.9], test_complex=False)59# def test_frexp_neg():   unary_ufunc_check(lambda x: np.frexp(x)[0], lims=[-2.1, -2.9], test_complex=False)60# Binary ufunc tests61def test_add():             binary_ufunc_check(np.add)62def test_logaddexp():       binary_ufunc_check(np.logaddexp, test_complex=False)63def test_logaddexp2():      binary_ufunc_check(np.logaddexp2, test_complex=False)64def test_true_divide():     binary_ufunc_check(np.true_divide, lims_B=[0.3, 2.0], test_complex=False)65def test_true_divide_neg(): binary_ufunc_check(np.true_divide, lims_B=[-0.9, -2.0], test_complex=False)66def test_hypot():           binary_ufunc_check(np.hypot, test_complex=False)67def test_arctan2():         binary_ufunc_check(np.arctan2, test_complex=False)68def test_copysign():        binary_ufunc_check(np.copysign, test_complex=False)69def test_nextafter():       binary_ufunc_check(np.nextafter, test_complex=False)70def test_remainder():       binary_ufunc_check_no_same_args(np.remainder, lims_A=[-0.9, 0.9], lims_B=[0.7, 1.9], test_complex=False)71def test_fmod():            binary_ufunc_check_no_same_args(np.fmod,      lims_A=[-0.9, 0.9], lims_B=[0.7, 1.9], test_complex=False)72def test_mod():             binary_ufunc_check_no_same_args(np.mod,       lims_B=[ 0.8, 2.1], test_complex=False)73def test_mod_neg():         binary_ufunc_check_no_same_args(np.mod,       lims_B=[-0.9, -2.0], test_complex=False)74def test_op_mul():     binary_ufunc_check(op.mul)75def test_op_add():     binary_ufunc_check(op.add)76def test_op_sub():     binary_ufunc_check(op.sub)77def test_op_div():     binary_ufunc_check(op.truediv, lims_B=[0.5, 2.0])78def test_op_pow():     binary_ufunc_check(op.pow,     lims_A=[0.7, 2.0])79def test_op_mod():     binary_ufunc_check_no_same_args(op.mod, lims_B=[0.3, 2.0], test_complex=False)80def test_op_mod_neg(): binary_ufunc_check_no_same_args(op.mod, lims_B=[-0.3, -2.0], test_complex=False)81# Misc tests82R = npr.randn83def test_transpose(): combo_check(np.transpose, [0],84                                  [R(2, 3, 4)], axes = [None, [0, 1, 2], [0, 2, 1],85                                                              [2, 0, 1], [2, 1, 0],86                                                              [1, 0, 2], [1, 2, 0]])87def test_repeat(): combo_check(np.repeat, [0], [R(2, 3, 4), R(3, 1)],88                               repeats=[0,1,2], axis = [None, 0, 1])89def test_diff():90    combo_check(np.diff, [0], [R(5,5), R(5,5,5)], n=[1,2], axis=[0,1])91    combo_check(np.diff, [0], [R(1), R(1,1)], axis=[0])92    combo_check(np.diff, [0], [R(1,1), R(3,1)], axis=[1])93def test_tile():94    combo_check(np.tile, [0], [R(2,1,3,1)], reps=[(1, 4, 1, 2)])95    combo_check(np.tile, [0], [R(1,2)], reps=[(1,2), (2,3), (3,2,1)])96    combo_check(np.tile, [0], [R(1)], reps=[(2,), 2])97def test_inner(): combo_check(np.inner, [0, 1],98                            [1.5, R(3), R(2, 3)],99                            [0.3, R(3), R(4, 3)])100def test_dot(): combo_check(np.dot, [0, 1],101                            [1.5, R(3), R(2, 3), R(2, 2, 3)],102                            [0.3, R(3), R(3, 4), R(2, 3, 4)])103def test_matmul(): combo_check(np.matmul, [0, 1],104                               [R(3), R(2, 3), R(2, 2, 3)],105                               [R(3), R(3, 4), R(2, 3, 4)])106def test_tensordot_1(): combo_check(np.tensordot, [0, 1],107                                    [R(1, 3), R(2, 3, 2)],108                                    [R(3),    R(3, 1),    R(3, 4, 2)],109                                    axes=[ [(1,), (0,)] ])110def test_tensordot_2(): combo_check(np.tensordot, [0, 1],111                                    [R(3),    R(3, 1),    R(3, 4, 2)],112                                    [R(1, 3), R(2, 3, 2)],113                                    axes=[ [(0,), (1,)] ])114def test_tensordot_3(): combo_check(np.tensordot, [0, 1],115                                    [R(2, 3),    R(2, 3, 4)],116                                    [R(1, 2, 3), R(2, 2, 3, 4)],117                                    axes=[ [(0, 1), (1, 2)] ,  [(1, 0), (2, 1)] ])118def test_tensordot_4(): combo_check(np.tensordot, [0, 1],119                                    [R(2, 2), R(4, 2, 2)],120                                    [R(2, 2), R(2, 2, 4)],121                                    axes=[1, 2])122def test_tensordot_5(): combo_check(np.tensordot, [0, 1], [R(4)], [R()], axes=[0])123def test_tensordot_6(): combo_check(np.tensordot, [0, 1], [R(2,6)], [R(6,3)], axes=[[[-1], [0]]])124# Need custom tests because gradient is undefined when arguments are identical.125def test_maximum(): combo_check(np.maximum, [0, 1],126                               [R(1), R(1,4), R(3, 4)],127                               [R(1), R(1,4), R(3, 4)])128def test_fmax(): combo_check(np.fmax, [0, 1],129                            [R(1), R(1,4), R(3, 4)],130                            [R(1), R(1,4), R(3, 4)])131def test_minimum(): combo_check(np.minimum, [0, 1],132                               [R(1), R(1,4), R(3, 4)],133                               [R(1), R(1,4), R(3, 4)])134def test_fmin(): combo_check(np.fmin, [0, 1],135                            [R(1), R(1,4), R(3, 4)],136                            [R(1), R(1,4), R(3, 4)])137def test_sort():       combo_check(np.sort, [0], [R(1), R(7)])138def test_msort():     combo_check(np.msort, [0], [R(1), R(7)])139def test_partition(): combo_check(np.partition, [0],140                                  [R(7), R(14)], kth=[0, 3, 6])141def test_atleast_1d(): combo_check(np.atleast_1d, [0], [1.2, R(1), R(7), R(1,4), R(2,4), R(2, 4, 5)])142def test_atleast_2d(): combo_check(np.atleast_2d, [0], [1.2, R(1), R(7), R(1,4), R(2,4), R(2, 4, 5)])143def test_atleast_3d(): combo_check(np.atleast_3d, [0], [1.2, R(1), R(7), R(1,4), R(2,4), R(2, 4, 5),144                                                        R(2, 4, 3, 5)])145def test_einsum_transpose():  combo_check(np.einsum, [1],    ['ij->ji'], [R(1, 1), R(4,4), R(3,4)])146def test_einsum_matmult():    combo_check(np.einsum, [1, 2], ['ij,jk->ik'], [R(2, 3)], [R(3,4)])147def test_einsum_matmult_broadcast(): combo_check(np.einsum, [1, 2], ['...ij,...jk->...ik'],148                                                 [R(2, 3), R(2, 2, 3)],149                                                 [R(3, 4), R(2, 3, 4)])150def test_einsum_covsum():     combo_check(np.einsum, [1, 2], ['ijk,lji->lki'], [R(3, 4, 4)], [R(4, 4, 3)])151def test_einsum_ellipses(): combo_check(np.einsum, [1, 2], ['...jk,...lj->...lk', '...,...->...'],152                                        [R(4, 4), R(3, 4, 4)],153                                        [R(4, 4), R(3, 4, 4)])154def test_einsum_ellipses_tail(): combo_check(np.einsum, [1, 2], ['jk...,lj...->lk...'],155                                             [R(3, 2), R(3, 2, 4)],156                                             [R(2, 3), R(2, 3, 4)])157def test_einsum_ellipses_center(): combo_check(np.einsum, [1, 2], ['j...k,lj...->lk...'],158                                               [R(2, 2), R(2, 2, 2)],159                                               [R(2, 2), R(2, 2, 2)])160def test_einsum_three_args(): combo_check(np.einsum, [1, 2], ['ijk,lji,lli->lki'],161                                          [R(3, 4, 4)], [R(4, 4, 3)], [R(4, 4, 3)])162def test_einsum2_transpose():  combo_check(np.einsum, [0], [R(1, 1), R(4,4), R(3,4)], [(0,1)], [(1,0)])163def test_einsum2_matmult():    combo_check(np.einsum, [0, 2], [R(2, 3)], [(0,1)], [R(3,4)], [(1,2)], [(0,2)])164def test_einsum2_matmult_broadcast(): combo_check(np.einsum, [0, 2],165                                                  [R(2, 3), R(2, 2, 3)], [(Ellipsis, 0, 1)],166                                                  [R(3, 4), R(2, 3, 4)], [(Ellipsis, 1, 2)],167                                                  [(Ellipsis, 0, 2)])168def test_einsum2_covsum():     combo_check(np.einsum, [0, 2], [R(3, 4, 4)], [(0,1,2)], [R(4, 4, 3)], [(3,1,0)], [(3,2,0)])169def test_einsum2_three_args(): combo_check(np.einsum, [0, 2],170                                          [R(3, 4, 4)], [(0,1,2)], [R(4, 4, 3)], [(3,1,0)], [R(4, 4, 3)], [(3,3,0)], [(3,2,0)])171def test_trace():    combo_check(np.trace, [0], [R(5, 5), R(4, 5), R(5, 4), R(3, 4, 5)], offset=[-1, 0, 1])172def test_diag():     combo_check(np.diag, [0], [R(5, 5)], k=[-1, 0, 1])173def test_diag_flat():combo_check(np.diag, [0], [R(5)],    k=[-1, 0, 1])174def test_tril():     combo_check(np.tril, [0], [R(5, 5)], k=[-1, 0, 1])175def test_triu():     combo_check(np.tril, [0], [R(5, 5)], k=[-1, 0, 1])176def test_tril_3d():  combo_check(np.tril, [0], [R(5, 5, 4)], k=[-1, 0, 1])177def test_triu_3d():  combo_check(np.tril, [0], [R(5, 5, 4)], k=[-1, 0, 1])178def test_swapaxes(): combo_check(np.swapaxes, [0], [R(3, 4, 5)], axis1=[0, 1, 2], axis2=[0, 1, 2])179def test_rollaxis(): combo_check(np.rollaxis, [0], [R(2, 3, 4)], axis =[0, 1, 2], start=[0, 1, 2, 3])180def test_cross():    combo_check(np.cross, [0, 1], [R(3, 3)], [R(3, 3)],181                                 axisa=[-1, 0, 1], axisb=[-1, 0, 1], axisc=[-1, 0, 1], axis=[None, -1, 0, 1])182def test_vsplit_2d(): combo_check(np.vsplit, [0], [R(4, 8)],    [4, [1, 2]])183def test_vsplit_3d(): combo_check(np.vsplit, [0], [R(4, 4, 4)], [2, [1, 2]])184def test_hsplit_2d(): combo_check(np.hsplit, [0], [R(4, 8)],    [4, [1, 2]])185def test_hsplit_3d(): combo_check(np.hsplit, [0], [R(4, 4, 4)], [2, [1, 2]])186def test_dsplit_3d(): combo_check(np.dsplit, [0], [R(4, 4, 4)], [2, [1, 2]])187def test_split_1d(): combo_check(np.split, [0], [R(1), R(7)], [1],         axis=[0])188def test_split_2d(): combo_check(np.split, [0], [R(4, 8)],    [4, [1, 2]], axis=[0, 1])189def test_split_3d(): combo_check(np.split, [0], [R(4, 4, 4)], [2, [1, 2]], axis=[0, 1, 2])190def test_array_split_1d(): combo_check(np.array_split, [0], [R(1), R(7)], [1, 3],      axis=[0])191def test_array_split_2d(): combo_check(np.array_split, [0], [R(7, 7)],    [4, [3, 5]], axis=[0, 1])192def test_array_split_3d(): combo_check(np.array_split, [0], [R(7, 7, 7)], [4, [3, 5]], axis=[0, 1, 2])193def test_concatenate_1ist():  combo_check(np.concatenate, [0], [(R(1), R(3))],             axis=[0])194def test_concatenate_tuple(): combo_check(np.concatenate, [0], [[R(1), R(3)]],             axis=[0])195def test_concatenate_2d():    combo_check(np.concatenate, [0], [(R(2, 2), R(2, 2))],       axis=[0, 1])196def test_concatenate_3d():    combo_check(np.concatenate, [0], [(R(2, 2, 2), R(2, 2, 2))], axis=[0, 1, 2])197def test_vstack_1d(): combo_check(np.vstack, [0], [R(2), (R(2), R(2))])198def test_vstack_2d(): combo_check(np.vstack, [0], [R(2, 3), (R(2, 4), R(1, 4))])199def test_vstack_3d(): combo_check(np.vstack, [0], [R(2, 3, 4), (R(2, 3, 4), R(5, 3, 4))])200def test_hstack_1d(): combo_check(np.hstack, [0], [R(2), (R(2), R(2))])201def test_hstack_2d(): combo_check(np.hstack, [0], [R(3, 2), (R(3, 4), R(3, 5))])202def test_hstack_3d(): combo_check(np.hstack, [0], [R(2, 3, 4), (R(2, 1, 4), R(2, 5, 4))])203def test_stack_1d():  combo_check(np.stack,  [0], [(R(2),), (R(2), R(2))], axis=[0, 1])204def test_row_stack_1d(): combo_check(np.row_stack, [0], [R(2), (R(2), R(2))])205def test_row_stack_2d(): combo_check(np.row_stack, [0], [R(2, 3), (R(2, 4), R(1, 4))])206def test_column_stack_1d(): combo_check(np.column_stack, [0], [R(2), (R(2), R(2))])207def test_column_stack_2d(): combo_check(np.column_stack, [0], [R(2, 2), (R(2, 2), R(2, 2))])208def test_select(): combo_check(np.select, [1], [[R(3,4,5) > 0, R(3,4,5) > 0, R(3,4,5) > 0]],...test_schema.py
Source:test_schema.py  
1# -*- coding: utf-8 -*-2"""3***********************************4tests.test_schema5***********************************6Tests for the schema extensions written in :ref:`sqlathanor.schema`.7"""8import pytest9from sqlathanor import Column10from tests.fixtures import db_engine, tables, base_model, db_session, \11    model_single_pk, model_composite_pk, instance_single_pk, instance_composite_pk, \12    model_complex, instance_complex13@pytest.mark.parametrize('test_index, test_complex, column_name, expected_result', [14    (0, False, 'id', (False, False)),15    (0, True, 'id', (True, True)),16    (0, False, 'name', (False, False)),17    (0, True, 'name', (True, True)),18    (0, True, 'password', (True, False)),19    (0, True, 'hidden', (False, False)),20    (0, False, 'addresses', (False, False)),21    (0, True, 'addresses', (False, False)),22    (1, False, 'email', (False, False)),23    (1, True, 'email', (True, True)),24    (1, False, 'user_id', (False, False)),25    (1, True, 'user_id', (False, False)),26])27def test_model_supports_csv(request,28                            model_single_pk,29                            model_complex,30                            test_index,31                            test_complex,32                            column_name,33                            expected_result):34    if test_complex:35        target = model_complex[test_index]36    else:37        target = model_single_pk[test_index]38    column = getattr(target, column_name)39    assert column.supports_csv == expected_result40@pytest.mark.parametrize('test_index, test_complex, column_name, expected_result', [41    (0, False, 'id', (False, False)),42    (0, True, 'id', (True, True)),43    (0, False, 'name', (False, False)),44    (0, True, 'name', (True, True)),45    (0, True, 'password', (True, False)),46    (0, True, 'hidden', (False, False)),47    (0, False, 'addresses', (False, False)),48    (0, True, 'addresses', (True, True)),49    (1, False, 'email', (False, False)),50    (1, True, 'email', (True, True)),51    (1, False, 'user_id', (False, False)),52    (1, True, 'user_id', (False, False)),53])54def test_model_supports_json(request,55                             model_single_pk,56                             model_complex,57                             test_index,58                             test_complex,59                             column_name,60                             expected_result):61    if test_complex:62        target = model_complex[test_index]63    else:64        target = model_single_pk[test_index]65    column = getattr(target, column_name)66    assert column.supports_json == expected_result67@pytest.mark.parametrize('test_index, test_complex, column_name, expected_result', [68    (0, False, 'id', (False, False)),69    (0, True, 'id', (True, True)),70    (0, False, 'name', (False, False)),71    (0, True, 'name', (True, True)),72    (0, True, 'password', (True, False)),73    (0, True, 'hidden', (False, False)),74    (0, False, 'addresses', (False, False)),75    (0, True, 'addresses', (True, True)),76    (1, False, 'email', (False, False)),77    (1, True, 'email', (True, True)),78    (1, False, 'user_id', (False, False)),79    (1, True, 'user_id', (False, False)),80])81def test_model_supports_yaml(request,82                             model_single_pk,83                             model_complex,84                             test_index,85                             test_complex,86                             column_name,87                             expected_result):88    if test_complex:89        target = model_complex[test_index]90    else:91        target = model_single_pk[test_index]92    column = getattr(target, column_name)93    assert column.supports_yaml == expected_result94@pytest.mark.parametrize('test_index, test_complex, column_name, expected_result', [95    (0, False, 'id', (False, False)),96    (0, True, 'id', (True, True)),97    (0, False, 'name', (False, False)),98    (0, True, 'name', (True, True)),99    (0, True, 'password', (True, False)),100    (0, True, 'hidden', (False, False)),101    (0, False, 'addresses', (False, False)),102    (0, True, 'addresses', (True, False)),103    (1, False, 'email', (False, False)),104    (1, True, 'email', (True, True)),105    (1, False, 'user_id', (False, False)),106    (1, True, 'user_id', (False, False)),107])108def test_model_supports_dict(request,109                             model_single_pk,110                             model_complex,111                             test_index,112                             test_complex,113                             column_name,114                             expected_result):115    if test_complex:116        target = model_complex[test_index]117    else:118        target = model_single_pk[test_index]119    column = getattr(target, column_name)120    assert column.supports_dict == expected_result121@pytest.mark.parametrize('test_index, test_complex, column_name, not_none', [122    (0, False, 'id', False),123    (0, True, 'id', False),124    (0, False, 'name', False),125    (0, True, 'name', False),126    (0, True, 'password', False),127    (0, True, 'hidden', False),128    (1, False, 'email', False),129    (1, True, 'email', True),130    (1, False, 'user_id', False),131    (1, True, 'user_id', False),132])133def test_model_on_serialize(request,134                            model_single_pk,135                            model_complex,136                            test_index,137                            test_complex,138                            column_name,139                            not_none):140    if test_complex:141        target = model_complex[test_index]142    else:143        target = model_single_pk[test_index]144    column = getattr(target, column_name)145    assert isinstance(column.on_serialize, dict)146    for key in column.on_serialize:147        assert (column.on_serialize[key] is not None) is not_none148@pytest.mark.parametrize('test_index, test_complex, column_name, not_none', [149    (0, False, 'id', False),150    (0, True, 'id', False),151    (0, False, 'name', False),152    (0, True, 'name', False),153    (0, True, 'password', False),154    (0, True, 'hidden', False),155    (1, False, 'email', False),156    (1, True, 'email', True),157    (1, False, 'user_id', False),158    (1, True, 'user_id', False),159])160def test_model_on_deserialize(request,161                              model_single_pk,162                              model_complex,163                              test_index,164                              test_complex,165                              column_name,166                              not_none):167    if test_complex:168        target = model_complex[test_index]169    else:170        target = model_single_pk[test_index]171    column = getattr(target, column_name)172    assert isinstance(column.on_deserialize, dict)173    for key in column.on_deserialize:174        assert (column.on_deserialize[key] is not None) is not_none175@pytest.mark.parametrize('test_index, column_name, expected_result', [176    (0, 'hybrid', 1),177])178def test_instance_hybrid_property_get(request,179                                      test_index,180                                      instance_complex,181                                      column_name,182                                      expected_result):183    target = instance_complex[0][test_index]184    result = getattr(target, column_name)185    assert result == expected_result186@pytest.mark.parametrize('test_index, column_name, new_value', [187    (0, 'hybrid', 3),188])189def test_instance_hybrid_property_set(request,190                                      test_index,191                                      instance_complex,192                                      column_name,193                                      new_value):194    target = instance_complex[0][test_index]195    setattr(target, column_name, new_value)196    result = getattr(target, column_name)197    assert result == new_value198@pytest.mark.parametrize('test_index, column_name, expected_result', [199    (0, 'keywords_basic', (False, False)),200])201def test_instance_association_proxy_supports_json(request,202                                                  test_index,203                                                  instance_complex,204                                                  column_name,205                                                  expected_result):206    target = instance_complex[0][test_index]207    result = getattr(target.__class__, column_name)...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
