<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Console Reporter Spec</title>

    <link rel="stylesheet" href="../ext/jasmine.css" type="text/css" />

    <script type="text/javascript" src="../ext/jasmine.js"></script>
    <script type="text/javascript" src="../ext/jasmine-html.js"></script>
    <script type="text/javascript" src="../src/jasmine.teamcity_reporter.js"></script>
</head>
<body>
    <script type="text/javascript">
        describe("Basic Suite", function() {
            it("Should pass a basic truthiness test.", function() {
                expect(true).toEqual(true);
            });

            it("Should fail when it hits an inequal statement.", function() {
                expect(1+1).toEqual(3);
            });
        });

        describe("Another Suite", function() {
            it("Should pass this test as well.", function() {
                expect(0).toEqual(0);
            });
        });

        jasmine.getEnv().addReporter(new jasmine.TeamcityReporter());
        jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
        jasmine.getEnv().execute();
    </script>
</body>
</html>
