Drupal Migrate doesn't register When trying to set up a migration, I can't seem to register new Migrations. When running drush migrate-status, I only see my User migration, even after a drush migrate-register.

My migrate.inc looks like this:

function module_migrate_api() {
    $api = array(
        'api' =&gt; 2,
        'migrations' =&gt; array(
            'User' =&gt; array(
                'class_name' =&gt; 'UserMigration'
            ),
            'News' =&gt; array(
                'class_name' =&gt; 'NewsMigration'
            ),
            'Activity' =&gt; array(
                'class_name' =&gt; 'ActivityMigration'
            )
        )
    );

    return $api;
}


And my module.inc file contains classes for each of these Migrations, based off of the UserMigration I wrote first (example given is UserMigration, which works, and NewsMigration, which does not work):

class UserMigration extends TestMigration {
    public function __construct($arguments) {
        parent::__construct($arguments);

        $this-&gt;description = t('Migrates users');

        $query = Database::getConnection('default', 'original')
            -&gt;select('users')
            -&gt;fields('users', array(
                'user_id',
                'username',
                'firstname',
                'lastname'
            ));
        $this-&gt;source = new MigrateSourceSQL($query);

        $options = array();
        $this-&gt;destination = new MigrateDestinationUser($options);

        $this-&gt;map = new MigrateSQLMap($this-&gt;machineName, array(
            'user_id' =&gt; array(
                'type' =&gt; 'int',
                'unsigned' =&gt; TRUE,
                'not null' =&gt; TRUE,
                'description' =&gt; t('Source ID')
            )
        ), MigrateDestinationNode::getKeySchema());
    }

class NewsMigration extends TestMigration {
    public function __construct($arguments) {
        parent::__construct($arguments);

        $this-&gt;description = t('Migrates news');

        $query = Database::getConnection('default', 'original')
            -&gt;select('news')
            -&gt;fields('news', array(
                'news_id',
                'user_id',
                'title',
                'text'
            ));
        $this-&gt;source = new MigrateSourceSQL($query);

        $options = array();
        $this-&gt;destination = new MigrateDestinationNode('news');

        $this-&gt;map = new MigrateSQLMap($this-&gt;machineName, array(
            'news_id' =&gt; array(
                'type' =&gt; 'int',
                'unsigned' =&gt; TRUE,
                'not null' =&gt; TRUE,
                'description' =&gt; t('Source ID')
            )
        ), MigrateDestinationNode::getKeySchema());

        /* $this-&gt;addFieldMapping('target', 'source'); */
    }
}


So far, I haven't added fieldmappings, since I want to set up everything that should be migrated first, to get a complete view of the work that's left.

When running drush migrate-register, I'm getting the following output:

All statically defined migrations have been (re)registered.                                                                                                                                         [success]


And a drush migrate-status gives me the following:

 Group: Test  Total  Imported  Unprocessed  Status  Last imported
 User         55     0         55           Idle    2015-12-03 13:40:30


So as you can see, no errors, not even when running with -v. But only User is recognized. Both classes are in the same file. Am I missing something simple?
Make sure you clear your cache (drush cc all) after (re)registering your classes.  Not doing so will often result in the migrate page showing error ClassName no longer exists.