anchor.diff:          expect(logger.out, contains('A tool to improve visibility into your Dart projects.'));
           expect(logger.out, contains('commands:'));
           expect(logger.err, isEmpty);
  +      });
  +    });
  +
  +    test('bad command', () {
  +      Tuneup tuneup = new Tuneup(logger);
  +      return tuneup.processArgs(['foo_command'], directory: foo).then((_) {
  +        expect(logger.out, contains('A tool to improve visibility into your Dart projects.'));
  +        expect(logger.out, contains('commands:'));
  +        expect(logger.err, isEmpty);
  +      });
  +    });
  +
  +    test('bad arg', () {
  +      Tuneup tuneup = new Tuneup(logger);
  +      return tuneup.processArgs(['--foo', 'bar'], directory: foo).then((_) {
  +        fail('should have thrown');
  +      }).catchError((e) {
  +        expect(e is ArgError, true);
  +        expect(e.message, contains('Could not find an option named'));
         });
       });
   
  
positive.code:         new Directory('foo/build').createSync();
          return tuneup.processArgs(['clean'], directory: foo);
        }).then((_) {
          print(logger.out);
          expect(logger.out, contains('Deleting build'));
          expect(logger.err, isEmpty);
        });
  
negative.code: import 'dart:io';
  
  import 'package:tuneup/tuneup.dart';
  import 'package:tuneup/src/common.dart';
  import 'package:unittest/unittest.dart';
  
  void defineTests() {
    group('integration tests', () {
  