How to use Column class of NBi.Core.ResultSet package

Best NBi code snippet using NBi.Core.ResultSet.Column

ResultSetSystemHelper.cs

Source:ResultSetSystemHelper.cs Github

copy

Full Screen

...35using NBi.Core.ResultSet.Alteration.Renaming.Strategies.Missing;36using NBi.Core.ResultSet.Filtering;37using NBi.Core.Calculation.Grouping;38using NBi.Xml.Items.Calculation.Grouping;39using NBi.Core.Calculation.Grouping.ColumnBased;40using NBi.Core.Calculation.Grouping.CaseBased;41using NBi.Core.Calculation.Predication;42using NBi.Xml.Items.Alteration.Merging;43using NBi.Core.ResultSet.Alteration.Merging;44using NBi.Xml.Items.Alteration.Duplication;45using NBi.Core.ResultSet.Alteration.Duplication;46namespace NBi.NUnit.Builder.Helper47{48 class ResultSetSystemHelper49 {50 protected ServiceLocator ServiceLocator { get; }51 protected SettingsXml.DefaultScope Scope { get; } = SettingsXml.DefaultScope.Everywhere;52 protected IDictionary<string, IVariable> Variables { get; }53 public ResultSetSystemHelper(ServiceLocator serviceLocator, SettingsXml.DefaultScope scope, IDictionary<string, IVariable> variables)54 => (ServiceLocator, Scope, Variables) = (serviceLocator, scope, variables);55 public IResultSetResolver InstantiateResolver(ResultSetSystemXml resultSetXml)56 {57 var argsBuilder = new ResultSetResolverArgsBuilder(ServiceLocator);58 argsBuilder.Setup(resultSetXml, resultSetXml.Settings, Scope, Variables);59 argsBuilder.Build();60 var factory = ServiceLocator.GetResultSetResolverFactory();61 var resolver = factory.Instantiate(argsBuilder.GetArgs());62 return resolver;63 }64 public IEnumerable<Alter> InstantiateAlterations(ResultSetSystemXml resultSetXml)65 {66 if ((resultSetXml.Alterations?.Count ?? 0) == 0)67 yield break;68 foreach (var alterationXml in resultSetXml.Alterations)69 {70 switch (alterationXml)71 {72 case FilterXml x: yield return InstantiateFilter(x); break;73 case ConvertXml x: yield return InstantiateConvert(x); break;74 case TransformXml x: yield return InstantiateTransform(x); break;75 case RenamingXml x: yield return InstantiateRename(x); break;76 case SummarizeXml x: yield return InstantiateSummarize(x); break;77 case ExtendXml x: yield return InstantiateExtend(x); break;78 case UnstackXml x: yield return InstantiateUnstack(x); break;79 case ProjectAwayXml x: yield return InstantiateProjectAway(x); break;80 case ProjectXml x: yield return InstantiateProject(x); break;81 case LookupReplaceXml x: yield return InstantiateLookupReplace(x, resultSetXml.Settings); break;82 case MergeXml x: yield return InstantiateMerging(x, resultSetXml.Settings); break;83 case DuplicateXml x: yield return InstantiateDuplicate(x); break;84 default: throw new ArgumentException();85 }86 }87 }88 private Alter InstantiateFilter(FilterXml filterXml)89 {90 var context = new Context(Variables);91 var factory = new ResultSetFilterFactory(ServiceLocator);92 if (filterXml.Ranking == null && filterXml.Uniqueness == null)93 {94 var expressions = new List<IColumnExpression>();95 if (filterXml.Expression != null)96 expressions.Add(filterXml.Expression);97 if (filterXml.Predication != null)98 {99 var helper = new PredicateArgsBuilder(ServiceLocator, context);100 var args = helper.Execute(filterXml.Predication.ColumnType, filterXml.Predication.Predicate);101 return factory.Instantiate102 (103 new PredicationArgs(filterXml.Predication.Operand, args)104 , context105 ).Apply;106 }107 if (filterXml.Combination != null)108 {109 var helper = new PredicateArgsBuilder(ServiceLocator, context);110 var predicationArgs = new List<PredicationArgs>();111 foreach (var predication in filterXml.Combination.Predications)112 {113 var args = helper.Execute(predication.ColumnType, predication.Predicate);114 predicationArgs.Add(new PredicationArgs(predication.Operand, args));115 }116 return factory.Instantiate117 (118 filterXml.Combination.Operator119 , predicationArgs120 , context121 ).Apply;122 }123 throw new ArgumentException();124 }125 else if (filterXml.Ranking != null)126 {127 var groupByArgs = BuildGroupByArgs(filterXml.Ranking.GroupBy, context);128 var groupByFactory = new GroupByFactory();129 var groupBy = groupByFactory.Instantiate(groupByArgs);130 var rankingGroupByArgs = new RankingGroupByArgs(groupBy, filterXml.Ranking.Option, filterXml.Ranking.Count, filterXml.Ranking.Operand, filterXml.Ranking.Type);131 return factory.Instantiate(rankingGroupByArgs, context).Apply;132 }133 else if (filterXml.Uniqueness != null)134 {135 var groupByArgs = BuildGroupByArgs(filterXml.Uniqueness.GroupBy, context);136 var groupByFactory = new GroupByFactory();137 var groupBy = groupByFactory.Instantiate(groupByArgs);138 var uniquenessArgs = new UniquenessArgs(groupBy);139 return factory.Instantiate(uniquenessArgs, context).Apply;140 }141 throw new ArgumentOutOfRangeException();142 }143 private IGroupByArgs BuildGroupByArgs(GroupByXml xml, Context context)144 {145 if (xml == null)146 return new NoneGroupByArgs();147 if ((xml?.Columns?.Count ?? 0) > 0)148 return new ColumnGroupByArgs(xml.Columns, context);149 if ((xml?.Cases?.Count ?? 0) > 0)150 {151 var builder = new PredicateArgsBuilder(ServiceLocator, context);152 var predications = new List<IPredication>();153 foreach (var caseXml in xml.Cases)154 {155 if (caseXml.Predication is SinglePredicationXml)156 {157 var predicationXml = (caseXml.Predication) as SinglePredicationXml;158 var args = builder.Execute(predicationXml.ColumnType, predicationXml.Predicate);159 var predicate = new PredicateFactory().Instantiate(args);160 var predicationFactory = new PredicationFactory();161 predications.Add(predicationFactory.Instantiate(predicate, predicationXml.Operand));162 }163 }164 return new CaseGroupByArgs(predications, context);165 }166 throw new ArgumentOutOfRangeException();167 }168 private Alter InstantiateConvert(ConvertXml convertXml)169 {170 var factory = new ConverterFactory();171 var converter = factory.Instantiate(convertXml.Converter.From, convertXml.Converter.To, convertXml.Converter.DefaultValue, convertXml.Converter.Culture);172 var engine = new ConverterEngine(convertXml.Column, converter);173 return engine.Execute;174 }175 private Alter InstantiateRename(RenamingXml renameXml)176 {177 var helper = new ScalarHelper(ServiceLocator, new Context(Variables));178 var newName = helper.InstantiateResolver<string>(renameXml.NewName);179 IMissingColumnStrategy strategy = new FailureMissingColumnStrategy();180 switch (renameXml.Missing.Behavior)181 {182 case alt.Renaming.MissingColumnBehavior.Skip:183 strategy = new SkipAlterationStrategy();184 break;185 default:186 strategy = new FailureMissingColumnStrategy();187 break;188 }189 var factory = new RenamingFactory();190 var renamer = factory.Instantiate(new NewNameRenamingArgs(renameXml.Identifier, newName, strategy));191 return renamer.Execute;192 }193 private Alter InstantiateMerging(MergeXml mergeXml, SettingsXml settingsXml)194 {195 var innerService = new ResultSetServiceBuilder();196 mergeXml.ResultSet.Settings = settingsXml;197 innerService.Setup(InstantiateResolver(mergeXml.ResultSet));198 innerService.Setup(InstantiateAlterations(mergeXml.ResultSet));199 var factory = new MergingFactory();200 IMergingArgs args;201 switch (mergeXml)202 {203 case UnionXml union: args = new UnionArgs(innerService.GetService(), union.ColumnIdentity); break;204 default: args = new CartesianProductArgs(innerService.GetService()); break;205 }206 var merger = factory.Instantiate(args);207 return merger.Execute;208 }209 private Alter InstantiateTransform(TransformXml transformXml)210 {211 var identifierFactory = new ColumnIdentifierFactory();212 var provider = new TransformationProvider(new ServiceLocator(), new Context(Variables));213 provider.Add(transformXml.Identifier, transformXml);214 return provider.Transform;215 }216 private Alter InstantiateSummarize(SummarizeXml summarizeXml)217 {218 var scalarHelper = new ScalarHelper(ServiceLocator, null);219 var factory = new SummarizationFactory();220 var aggregations = new List<ColumnAggregationArgs>()221 {222 new ColumnAggregationArgs(223 (summarizeXml.Aggregation as ColumnAggregationXml)?.Identifier,224 summarizeXml.Aggregation.Function,225 summarizeXml.Aggregation.ColumnType,226 summarizeXml.Aggregation.Parameters.Select(x => scalarHelper.InstantiateResolver(summarizeXml.Aggregation.ColumnType, x)).ToList()227 )228 };229 var groupBys = summarizeXml.GroupBy?.Columns?.Cast<IColumnDefinitionLight>() ?? new List<IColumnDefinitionLight>();230 var summarizer = factory.Instantiate(new SummarizeArgs(aggregations, groupBys));231 return summarizer.Execute;232 }233 private Alter InstantiateExtend(ExtendXml extendXml)234 {235 var factory = new ExtensionFactory(ServiceLocator, new Context(Variables));236 var extender = factory.Instantiate(new ExtendArgs237 (238 extendXml.Identifier239 , extendXml.Script?.Code ?? throw new ArgumentException("Script cannot be empty or null")240 , extendXml.Script.Language241 ));242 return extender.Execute;243 }244 private Alter InstantiateUnstack(UnstackXml unstackXml)245 {246 var factory = new ReshapingFactory();247 var header = unstackXml.Header.Column.Identifier;248 var groupBys = unstackXml.GroupBy?.Columns?.Cast<IColumnDefinitionLight>() ?? new List<IColumnDefinitionLight>();249 var values = unstackXml.Header.EnforcedValues.Select(x => new ColumnNameIdentifier(x));250 var reshaper = factory.Instantiate(new UnstackArgs(header, groupBys, values));251 return reshaper.Execute;252 }253 private Alter InstantiateProject(ProjectXml projectXml)254 {255 var factory = new ProjectionFactory();256 var project = factory.Instantiate(new ProjectArgs(projectXml.Columns.Select(x => x.Identifier)));257 return project.Execute;258 }259 private Alter InstantiateProjectAway(ProjectAwayXml projectXml)260 {261 var factory = new ProjectionFactory();262 var project = factory.Instantiate(new ProjectAwayArgs(projectXml.Columns.Select(x => x.Identifier)));263 return project.Execute;264 }265 private Alter InstantiateDuplicate(DuplicateXml duplicateXml)266 {267 var context = new Context(Variables);268 //Predication269 var predicationFactory = new PredicationFactory();270 var predication = predicationFactory.True;271 if (duplicateXml.Predication != null)272 {273 var helper = new PredicateArgsBuilder(ServiceLocator, context);274 var predicateArgs = helper.Execute(duplicateXml.Predication.ColumnType, duplicateXml.Predication.Predicate);275 var predicateFactory = new PredicateFactory();276 var predicate = predicateFactory.Instantiate(predicateArgs);277 predication = predicationFactory.Instantiate(predicate, duplicateXml.Predication.Operand);278 }279 //Times280 var times = new ScalarHelper(ServiceLocator, context).InstantiateResolver<int>(duplicateXml.Times);281 //Outputs282 var outputs = new List<OutputArgs>();283 foreach (var outputXml in duplicateXml.Outputs)284 if (outputXml.Class == OutputClass.Script)285 outputs.Add(new OutputScriptArgs(ServiceLocator, context, outputXml.Identifier, outputXml.Script.Language, outputXml.Script.Code));286 else if(outputXml.Class == OutputClass.Static)287 outputs.Add(new OutputValueArgs(outputXml.Identifier, outputXml.Value));288 else289 outputs.Add(new OutputArgs(outputXml.Identifier, outputXml.Class));290 //Duplicate291 var args = new DuplicateArgs(predication, times, outputs);292 var factory = new DuplicationFactory(ServiceLocator, context);293 var duplicate = factory.Instantiate(args);294 return duplicate.Execute;295 }296 private Alter InstantiateLookupReplace(LookupReplaceXml lookupReplaceXml, SettingsXml settingsXml)297 {298 var factory = new LookupFactory();299 var innerService = new ResultSetServiceBuilder();300 lookupReplaceXml.ResultSet.Settings = settingsXml;301 innerService.Setup(InstantiateResolver(lookupReplaceXml.ResultSet));302 innerService.Setup(InstantiateAlterations(lookupReplaceXml.ResultSet));303 IMissingStrategy strategy = new FailureMissingStrategy();304 switch (lookupReplaceXml.Missing.Behavior)305 {306 case alt.Lookup.Behavior.OriginalValue:307 strategy = new OriginalValueMissingStrategy();308 break;309 case alt.Lookup.Behavior.DefaultValue:310 strategy = new DefaultValueMissingStrategy(lookupReplaceXml.Missing.DefaultValue);311 break;312 case alt.Lookup.Behavior.DiscardRow:313 strategy = new DiscardRowMissingStrategy();314 break;315 default:316 strategy = new FailureMissingStrategy();317 break;318 }319 var lookup = factory.Instantiate(320 new LookupReplaceArgs(321 innerService.GetService(),322 BuildMappings(lookupReplaceXml.Join).ElementAt(0),323 lookupReplaceXml.Replacement.Identifier,324 strategy325 ));326 return lookup.Execute;327 }328 private IEnumerable<ColumnMapping> BuildMappings(JoinXml joinXml)329 {330 var factory = new ColumnIdentifierFactory();331 return joinXml?.Mappings.Select(mapping => new ColumnMapping(332 factory.Instantiate(mapping.Candidate)333 , factory.Instantiate(mapping.Reference)334 , mapping.Type))335 .Union(336 joinXml?.Usings.Select(@using => new ColumnMapping(337 factory.Instantiate(@using.Column)338 , @using.Type)339 ));340 }341 }342}...

Full Screen

Full Screen

TransformationProviderTest.cs

Source:TransformationProviderTest.cs Github

copy

Full Screen

...15 [TestFixture]16 public class TransformationProviderTest17 {18 [Test]19 public void Transform_SimpleTranformation_CorrectHandlingOfColumnNames()20 {21 var resultSet = new NBi.Core.ResultSet.ResultSet();22 resultSet.Load("aaaa;10");23 resultSet.Columns[0].ColumnName = "MyCol0";24 resultSet.Columns[1].ColumnName = "MyCol1";25 var transformation = Mock.Of<ITransformationInfo>26 (27 t => t.Language == LanguageType.CSharp28 && t.OriginalType == ColumnType.Text29 && t.Code == "value.Substring(0,1)"30 );31 var provider = new TransformationProvider(new ServiceLocator(), Context.None);32 provider.Add(new ColumnOrdinalIdentifier(0), transformation);33 provider.Transform(resultSet);34 Assert.That(resultSet.Columns[0].ColumnName, Is.EqualTo("MyCol0"));35 Assert.That(resultSet.Columns[1].ColumnName, Is.EqualTo("MyCol1"));36 Assert.That(resultSet.Columns.Count, Is.EqualTo(2));37 }38 [Test]39 public void Transform_SimpleTranformation_Correct()40 {41 var resultSet = new NBi.Core.ResultSet.ResultSet();42 resultSet.Load("aaaa;10");43 var transformation = Mock.Of<ITransformationInfo>44 (45 t => t.Language == LanguageType.CSharp46 && t.OriginalType == ColumnType.Text47 && t.Code == "value.Substring(0,1)"48 );49 var provider = new TransformationProvider(new ServiceLocator(), Context.None);50 provider.Add(new ColumnOrdinalIdentifier(0), transformation);51 provider.Transform(resultSet);52 Assert.That(resultSet.Rows[0][0], Is.EqualTo("a"));53 }54 [Test]55 public void Transform_NativeTranformationTrim_Correct()56 {57 var resultSet = new NBi.Core.ResultSet.ResultSet();58 resultSet.Load(" aaaa ;10");59 var transformation = Mock.Of<ITransformationInfo>60 (61 t => t.Language == LanguageType.Native62 && t.OriginalType == ColumnType.Text63 && t.Code == "text-to-trim"64 );65 var provider = new TransformationProvider(new ServiceLocator(), Context.None);66 provider.Add(new ColumnOrdinalIdentifier(0), transformation);67 provider.Transform(resultSet);68 Assert.That(resultSet.Rows[0][0], Is.EqualTo("aaaa"));69 }70 [Test]71 public void Transform_NativeTranformationFirstCharWithContext_Correct()72 {73 var resultSet = new NBi.Core.ResultSet.ResultSet();74 resultSet.Load(new[] { new object[] { "123456789", 6 }, new object[] { "abcdefgh", 2 } });75 var transformation = Mock.Of<ITransformationInfo>76 (77 t => t.Language == LanguageType.Native78 && t.OriginalType == ColumnType.Text79 && t.Code == "text-to-first-chars(#1)"80 );81 var provider = new TransformationProvider(new ServiceLocator(), Context.None);82 provider.Add(new ColumnOrdinalIdentifier(0), transformation);83 provider.Transform(resultSet);84 Assert.That(resultSet.Rows[0][0], Is.EqualTo("123456"));85 Assert.That(resultSet.Rows[1][0], Is.EqualTo("ab"));86 }87 [Test]88 public void Transform_NativeTranformationBlankToNull_Correct()89 {90 var resultSet = new NBi.Core.ResultSet.ResultSet();91 resultSet.Load("\t;10");92 var transformation = Mock.Of<ITransformationInfo>93 (94 t => t.Language == LanguageType.Native95 && t.OriginalType == ColumnType.Text96 && t.Code == "blank-to-null"97 );98 var provider = new TransformationProvider(new ServiceLocator(), Context.None);99 provider.Add(new ColumnOrdinalIdentifier(0), transformation);100 provider.Transform(resultSet);101 Assert.That(resultSet.Rows[0][0], Is.EqualTo("(null)"));102 }103 [Test]104 public void Transform_NativeTranformationUnknown_Exception()105 {106 var resultSet = new NBi.Core.ResultSet.ResultSet();107 resultSet.Load("\t;10");108 var transformation = Mock.Of<ITransformationInfo>109 (110 t => t.Language == LanguageType.Native111 && t.OriginalType == ColumnType.Text112 && t.Code == "unknown"113 );114 var provider = new TransformationProvider(new ServiceLocator(), null);115 Assert.Throws<NotImplementedTransformationException>(() => provider.Add(new ColumnOrdinalIdentifier(0), transformation));116 }117 [Test]118 public void Transform_TypeSwitch_Correct()119 {120 var resultSet = new NBi.Core.ResultSet.ResultSet();121 var obj = new object[] { new DateTime(2016,10,1) };122 resultSet.Load(Enumerable.Repeat(obj,1));123 var transformation = Mock.Of<ITransformationInfo>124 (125 t => t.Language == LanguageType.CSharp126 && t.OriginalType == ColumnType.DateTime127 && t.Code == "value.Month + (value.Year-2000)*12"128 );129 var provider = new TransformationProvider(new ServiceLocator(), Context.None);130 provider.Add(new ColumnOrdinalIdentifier(0), transformation);131 provider.Transform(resultSet);132 Assert.That(resultSet.Rows[0][0], Is.EqualTo(202));133 }134 }135}...

Full Screen

Full Screen

EqualToXml.cs

Source:EqualToXml.cs Github

copy

Full Screen

...91 }92 }9394 [XmlElement("column")]95 public List<NBi.Xml.Items.ResultSet.ColumnDefinitionXml> columnsDef;9697 public IList<IColumnDefinition> ColumnsDef98 {99 get100 {101 if (columnsDef == null)102 columnsDef = new List<NBi.Xml.Items.ResultSet.ColumnDefinitionXml>();103 return columnsDef.Cast<IColumnDefinition>().ToList();104 }105 }106107 [XmlAttribute("persistance")]108 [DefaultValue(PersistanceChoice.Never)]109 public PersistanceChoice Persistance;110111 public ResultSetComparisonSettings GetSettings()112 {113 return new ResultSetComparisonSettings(KeysDef, ValuesDef, ToleranceFactory.BuildNumeric(Tolerance), ColumnsDef);114 }115116 [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2100:Review SQL queries for security vulnerabilities")]117 public virtual IDbCommand GetCommand()118 {119 if (Query==null)120 return null;121122 var conn = new ConnectionFactory().Get(Query.GetConnectionString());123 var cmd = conn.CreateCommand();124 cmd.CommandText = Query.GetQuery();125 126127 return cmd; ...

Full Screen

Full Screen

Column

Using AI Code Generation

copy

Full Screen

1Column col = new Column("MyColumn");2Column col = new Column("MyColumn");3Column col = new Column("MyColumn");4Column col = new Column("MyColumn");5Column col = new Column("MyColumn");6Column col = new Column("MyColumn");7Column col = new Column("MyColumn");8Column col = new Column("MyColumn");9Column col = new Column("MyColumn");10Column col = new Column("MyColumn");11Column col = new Column("MyColumn");12Column col = new Column("MyColumn");13Column col = new Column("MyColumn");14Column col = new Column("MyColumn");15Column col = new Column("MyColumn");16Column col = new Column("MyColumn");17Column col = new Column("MyColumn");

Full Screen

Full Screen

Column

Using AI Code Generation

copy

Full Screen

1using NBi.Core.ResultSet;2using NBi.Core;3using NUnit.Framework;4using NBi.NUnit;5{6 public void MyTestMethod()7 {8 var column = new Column("Name", "John");9 var service = new ResultSetService();10 var resultSet = service.Execute("SELECT Name FROM MyTable");11 var filter = new ResultSetFilter();12 filter.Add(column);13 var filteredResultSet = filter.ApplyTo(resultSet);14 }15}

Full Screen

Full Screen

Column

Using AI Code Generation

copy

Full Screen

1Column column = new Column("col1", new ColumnType(DbType.Int32), new ColumnRole(ColumnRole.Key));2ColumnFactory factory = new ColumnFactory();3Column column = factory.Build("col1", new ColumnType(DbType.Int32), new ColumnRole(ColumnRole.Key));4Column column = new ColumnFactory().Build("col1", new ColumnType(DbType.Int32), new ColumnRole(ColumnRole.Key));5ResultSet resultSet = new ResultSet();6resultSet.Query = new InlineQuery("SELECT * FROM myTable;");7resultSet.Settings = new ResultSetComparisonSettings();

Full Screen

Full Screen

Column

Using AI Code Generation

copy

Full Screen

1var column = new Column("MyColumn", new ColumnType(DbType.String));2var columns = new ColumnCollection();3columns.Add(column);4var builder = new ResultSetBuilder(columns);5var builder = new ResultSetBuilder(ColumnFactory.AllText());6var builder = ResultSetService.GetBuilder(ColumnFactory.AllText());7var builder = ResultSetService.GetBuilder(ColumnFactory.AllText());8 .AddRow()9 .AddCell("Hello")10 .AddCell("World")11 .AddRow()12 .AddCell("Hello")13 .AddCell("World");14var builder = ResultSetService.GetBuilder(ColumnFactory.AllText());15 .AddRow()16 .AddCell("Hello")17 .AddCell("World")18 .AddRow()19 .AddCell("Hello")20 .AddCell("World");21var rs = builder.GetResultset();22var builder = ResultSetService.GetBuilder(ColumnFactory.AllText());23 .AddRow()24 .AddCell("Hello")25 .AddCell("World")26 .AddRow()27 .AddCell("Hello")28 .AddCell("World");29var rs = builder.GetResultset();30var xml = rs.SaveXml();31var builder = ResultSetService.GetBuilder(ColumnFactory.AllText());32 .AddRow()33 .AddCell("Hello")34 .AddCell("World")35 .AddRow()36 .AddCell("Hello")37 .AddCell("World");38var rs = builder.GetResultset();39var xml = rs.SaveXml();40var rs2 = ResultSet.LoadXml(xml);41var builder = ResultSetService.GetBuilder(ColumnFactory.AllText());42 .AddRow()43 .AddCell("Hello")44 .AddCell("World")45 .AddRow()

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run NBi automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful