In order to give at least the appearance of test-driven development, we should port the existing D7 SimpleTest tests to D8.

Each module has tests, and these tests should be ported as directly as possible, without changing them.

Note that these tests will fail. :-) The point of this exercise is to write tests that fail.

The issues listed here will be marked fixed when they run without fatal code errors.

In order to build the tests, you will also need to generate the file structure of the module in question.

One thing to keep in mind is that SimpleTest shows you a stack trace for fails, as if they were errors. This is the most annoying part of porting tests; they look like they're broken when they're really not.

Steps to take:

  • Pick a module.
  • Assign the issue to yourself.
  • Generate a module skeleton.
  • Convert tests.
  • Run tests.
  • More conversion if necessary.
  • Submit a patch.

Resources:

A tool to generate a module skeleton: https://drupal.org/sandbox/mile23/2230027

Test conversion notes: https://drupal.org/node/2166895

How to run tests:

Modules:

Comments

mile23’s picture

Issue summary: View changes
mile23’s picture

Issue summary: View changes
mile23’s picture

Issue summary: View changes
mile23’s picture

Issue summary: View changes
mile23’s picture

Issue summary: View changes
karens’s picture

Since core is now using PHPUnit tests (https://www.drupal.org/phpunit), shouldn't the example modules use that instead wherever it could apply? I see there is a single example of PHPUnit testing, so just wondering if it is still appropriate to have a simpletest for every example. Module developers may deduce that simpletest is the expectation or standard.

karens’s picture

Also it's not self-evident why the tests are supposed to fail. Some explanation of that would help.

mile23’s picture

Issue summary: View changes
Status: Active » Postponed
Issue tags: -Novice

Mothballing this issue because clearly no one gets it. :-) Also it's hard to manage in a patch-oriented process.

Not closing it because there are still child issues being worked on, and we don't want to lose that effort.

mile23’s picture

Status: Postponed » Closed (outdated)

All the child issues are closed or rescoped.

Thanks everyone for trying. :-)