Coder Social home page Coder Social logo

cucumber-school / scripts Goto Github PK

View Code? Open in Web Editor NEW
65.0 65.0 126.0 183.59 MB

Scripts for the BDD with Cucumber video series

Home Page: https://cucumber-school.github.io/scripts

License: Creative Commons Attribution 4.0 International

Ruby 11.55% Gherkin 7.35% Java 11.21% JavaScript 7.52% C# 2.88% HTML 59.49%

scripts's People

Contributors

cbliard avatar gasparnagy avatar iachettifederico avatar mattwynne avatar nihonbuson avatar sebrose avatar tirosh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scripts's Issues

download problem

hi i'm trying to dowlnload the lastest release but i can't.

If i use the link in the README file i got the following messege: 404: Not Found

i'm new here and i just wanna complete cucumber's course

Upgrade to latest Cucumber versions

The release cycle of Cucumber-Ruby, Cucumber-JVM and Cucumber-JS has been quite rapid lately, and we've added some functionality lately that we want Cucumber School users to be exposed to from the first lesson, even if the lesson doesn't cover it explicitly.

The functionality we want people to see as soon as they get started is a banner that gets printed at the end of a run, encouraging the Cucumber user to publish reports. More details here:

I'd like to be able to update the Cucumber versions in Cucumber School myself with a single command. Something like this:

cucumber-ruby: 5.0.0
cucumber-jvm: 6.5.1

And then simply run bundle exec rake to make the required changes/commits.

Right now the build is a bit too complicated for me to figure out as I've mentioned in #17.

Is this something you could look into @iachettifederico?

Cheers,
Aslak

shouty.RuncucumberTest > initializationError FAILED

After executing ./gradlew test --rerun-tasks --info under content/bdd-with-cucumber/04/code/java/15--step15-move-givens-into-background/shouty. I got this FAILED

Task :test FAILED

  shouty.RunCucumberTest > initializationError FAILED
      io.cucumber.core.gherkin.FeatureParserException: Failed to parse resource at: classpath:shouty/hear_shout.feature
          at io.cucumber.core.gherkin.vintage.GherkinVintageFeatureParser.parseGherkin5(GherkinVintageFeatureParser.java:40)
          at io.cucumber.core.gherkin.vintage.GherkinVintageFeatureParser.parse(GherkinVintageFeatureParser.java:58)
          at io.cucumber.core.feature.FeatureParser.parseResource(FeatureParser.java:44)
          at io.cucumber.core.runtime.FeaturePathFeatureSupplier.lambda$new$0(FeaturePathFeatureSupplier.java:39)
          at java.util.function.BiFunction.lambda$andThen$0(BiFunction.java:70)
          at io.cucumber.core.resource.ResourceScanner.lambda$processResource$2(ResourceScanner.java:126)
          at io.cucumber.core.resource.PathScanner$ResourceFileVisitor.visitFile(PathScanner.java:67)
          at io.cucumber.core.resource.PathScanner$ResourceFileVisitor.visitFile(PathScanner.java:52)
          at java.nio.file.Files.walkFileTree(Files.java:2670)
          at java.nio.file.Files.walkFileTree(Files.java:2742)
          at io.cucumber.core.resource.PathScanner.findResourcesForPath(PathScanner.java:46)
          at io.cucumber.core.resource.PathScanner.findResourcesForUri(PathScanner.java:26)
          at io.cucumber.core.resource.ResourceScanner.findResourcesForUri(ResourceScanner.java:109)
          at io.cucumber.core.resource.ResourceScanner.lambda$findResourcesForUris$1(ResourceScanner.java:98)
          at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
          at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
          at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
          at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
          at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
          at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
          at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
          at io.cucumber.core.resource.ResourceScanner.findResourcesForUris(ResourceScanner.java:101)
          at io.cucumber.core.resource.ResourceScanner.scanForClasspathResource(ResourceScanner.java:66)
          at io.cucumber.core.resource.ResourceScanner.scanForResourcesUri(ResourceScanner.java:83)
          at io.cucumber.core.runtime.FeaturePathFeatureSupplier.loadFeatures(FeaturePathFeatureSupplier.java:62)
          at io.cucumber.core.runtime.FeaturePathFeatureSupplier.get(FeaturePathFeatureSupplier.java:46)
          at io.cucumber.junit.Cucumber.<init>(Cucumber.java:156)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
          at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
          at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
          at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
          at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
          at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
          at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
          at org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
          at org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
          at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:78)
          at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
          at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
          at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
          at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:498)
          at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
          at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
          at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
          at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
          at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
          at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:118)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:498)
          at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
          at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
          at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
          at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
          at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412)
          at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
          at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
          at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
          at java.lang.Thread.run(Thread.java:748)
  
          Caused by:
          io.cucumber.core.gherkin.vintage.internal.gherkin.ParserException$CompositeParserException: Parser errors:
          (12:3): expected: #EOF, #TableRow, #DocStringSeparator, #StepLine, #TagLine, #ScenarioLine, #ScenarioOutlineLine, #Comment, #Empty, got 'Rule: Shouts can be heard by other users'
          (22:3): expected: #EOF, #TableRow, #DocStringSeparator, #StepLine, #TagLine, #ScenarioLine, #ScenarioOutlineLine, #Comment, #Empty, got 'Rule: Shouts should only be heard if listener is within range'
              at io.cucumber.core.gherkin.vintage.internal.gherkin.Parser.parse(Parser.java:143)
              at io.cucumber.core.gherkin.vintage.internal.gherkin.Parser.parse(Parser.java:118)
              at io.cucumber.core.gherkin.vintage.internal.gherkin.Parser.parse(Parser.java:114)
              at io.cucumber.core.gherkin.vintage.GherkinVintageFeatureParser.parseGherkin5(GherkinVintageFeatureParser.java:29)
              ... 67 more

I think the problem is Background. Because the problem is all after adding this keyword. But in your tutorial video(https://school.cucumber.io/courses/take/bdd-with-cucumber-java/lessons/14723910-backgrounds) it work. It's very strange.

Subtitles

We could either craft these by hand, or we need to think about a way to store enough info in the asciidoc to be able to generate them.

CI build

Render the index.html and check it into a gh-pages branch

Rename

@sebrose I've been thinking we could rename this to something like "Outside-in development: a worked example"

WDYT? Can you make it snappier?

Mokito is missing for java 04.01

When I start with the code from 00--step00-initial-commit/shouty and then follow along modifying my code as in the video for Chapter 4 -- Cleaning Up, Section 1 -- Description Field, IntelliJ IDEA gives the error message:

C:\Users\cowan\Documents\GradleTraining\Cucumber School\BDD - Java\shouty\src\test\java\shouty\NetworkTest.java:5:26
java: package org.mockito does not exist

I notice that there is no dependency for Mokito in the pom.xml for 00--step00-initial-commit/shouty.

Script for 02.03 should refer to Gradle, not Ant.

The script for Chapter 2: "Your First Scenario", Section 3: "Install Cucumber", should be changed to refer to Gradle, not Ant. Both the video and the script currently refer to Ant, but Ant has apparently not been used in the Cucumber Java Skeleton since 2014 (v1.2.0.1).

Until the video is changed, we could change the text to say something like:

"The template project contains Maven and Gradle build
scripts (Ant build scripts in older versions) that make it easier to get started with Cucumber for Java."

This will help those who are hoping to use Cucumber with Gradle and also give those who want to use Ant a clue as to where to look. I consider changing the video a much lower priority than finishing the rest of the chapters for the course.

Include file not found error

See https://github.com/cucumber-school/bdd-with-cucumber/runs/889664424?check_suite_focus=true#step:7:4

I also get this locally when I run bundle exec rake html:

Generating ruby
asciidoctor: ERROR: scripts.ruby.adoc: line 101: include file not found: /Users/Aslak.Hellesoy/git/cucumber-school/bdd-with-cucumber/content/06/index.adoc
asciidoctor: ERROR: scripts.ruby.adoc: line 101: include file not found: /Users/Aslak.Hellesoy/git/cucumber-school/bdd-with-cucumber/content/06/index.adoc
Generating js
asciidoctor: ERROR: scripts.js.adoc: line 101: include file not found: /Users/Aslak.Hellesoy/git/cucumber-school/bdd-with-cucumber/content/06/index.adoc
asciidoctor: ERROR: scripts.js.adoc: line 101: include file not found: /Users/Aslak.Hellesoy/git/cucumber-school/bdd-with-cucumber/content/06/index.adoc
Generating java
asciidoctor: ERROR: scripts.java.adoc: line 99: include file not found: /Users/Aslak.Hellesoy/git/cucumber-school/bdd-with-cucumber/content/06/index.adoc
asciidoctor: ERROR: scripts.java.adoc: line 99: include file not found: /Users/Aslak.Hellesoy/git/cucumber-school/bdd-with-cucumber/content/06/index.adoc
Generating dotnet
asciidoctor: ERROR: scripts.dotnet.adoc: line 31: include file not found: /Users/Aslak.Hellesoy/git/cucumber-school/bdd-with-cucumber/content/06/index.adoc
asciidoctor: ERROR: scripts.dotnet.adoc: line 31: include file not found: /Users/Aslak.Hellesoy/git/cucumber-school/bdd-with-cucumber/content/06/index.adoc
Generating content/languages.adoc
Generating main index page

Fail build if code branches have not been pushed

When working on code branches and a script at the same time, it's easy to forget to push your local code branch.

We need a way to fail the build if the unrolled code on master is different to the code in the corresponding code branch, just as a safety mechanism, to prevent code branches here on GitHub being left out of date.

Include chapter titles in generated index.html

We need to modify the rake task that generates the index list of files to include. It needs to iterate twice:

  1. over the chapters
  2. over the scripts / questions in the chapter

We could use this script to build an index-files.adoc for each chapter.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.