   end
 
   test "allows nil projects to be pushed twice" do
-    Mix.Project.push nil
-    Mix.Project.push nil
-    assert is_map Mix.Project.pop
-    assert is_map Mix.Project.pop
-    assert is_nil Mix.Project.pop
+    Mix.Project.push(nil)
+    Mix.Project.push(nil)
+    assert is_map(Mix.Project.pop())
+    assert is_map(Mix.Project.pop())
+    assert is_nil(Mix.Project.pop())
   end
 
   test "retrieves configuration from projects" do
     Mix.Project.push(SampleProject)
-    assert Mix.Project.config[:hello] == "world"
+    assert Mix.Project.config()[:hello] == "world"
   end
 
   test "removes private configuration" do
     Mix.Project.push(SampleProject)
-    assert is_nil Mix.Project.config[:app_path]
+    assert is_nil(Mix.Project.config()[:app_path])
   end
 
   test "retrieves configuration even when a project is not set" do
-    assert Mix.Project.config[:default_task] == "run"
+    assert Mix.Project.config()[:default_task] == "run"
   end
 
   test "raises an error when trying to retrieve the current project but none is set" do
     assert_raise Mix.NoProjectError, fn ->
-      Mix.Project.get!
+      Mix.Project.get!()
     end
   end
 


  test "returns consolidation path" do
    config = [apps_path: "apps", build_per_environment: true]
    assert Mix.Project.consolidation_path(config) ==
           Path.join(File.cwd!, "_build/dev/consolidated")

  config = [app: :sample, build_per_environment: true]
    assert Mix.Project.consolidation_path(config) ==
           Path.join(File.cwd!, "_build/dev/lib/sample/consolidated")
  end

  test "push and pop projects" do
    refute Mix.Project.get
    Mix.Project.push(SampleProject, "sample")
    assert Mix.Project.get == SampleProject

    assert %{name: SampleProject, config: _, file: "sample"} = Mix.Project.pop
    assert Mix.Project.pop == nil
  end

  test "does not allow the same project to be pushed twice" do


  test "in_project prints nice error message if fails to load file", context do
    in_tmp context.test, fn ->
      File.write("mix.exs", """
      raise "oops"
      """)

      assert_raise RuntimeError, "oops", fn ->
        Mix.Project.in_project(:hello, ".", [], fn _ ->
          :ok
        end)
      end

      assert_receive {:mix_shell, :error, ["Error while loading project :hello at" <> _]}
