CherryPoppins

CherryPoppins

I’m having trouble understanding how test --cover is working. I see a module has 0% coverage, add a test for the function defined in that module and test --cover still says 0% for that module. Also, not sure why it is flagging some functions not defined in the module as needing tests. Here is an example of what Im talking about:

here is a screenshot after running test.coverage:

here are the tests for it:

defmodule Core.Tenants.Settings.CheckoutTest do
  @moduledoc false

  use ExUnit.Case, async: true
  alias Core.Tenants.Settings.Checkout

  @valid_attrs %{asset_key: "some string"}
  @invalid_attrs %{}

  test "changeset with valid attributes" do
    changeset = Checkout.changeset(%Checkout{}, @valid_attrs)
    assert changeset.valid?
  end

  test "changeset with invalid attributes" do
    changeset = Checkout.changeset(%Checkout{}, @invalid_attrs)
    refute changeset.valid?
  end

  test "asset_key is required" do
    changeset = Checkout.changeset(%Checkout{}, Map.delete(@valid_attrs, :asset_key))
    refute changeset.valid?
  end
end

Showing Posts 1 to 6

Sebb

Sebb

maybe test.coverage is not configured correctly. Are you sure the test is really running? (add some console output)

CherryPoppins

CherryPoppins OP

Yeah the test runs. I should probably also add this is an umbrella app.

EDIT: so actually the test wasn’t running because the file name had tests instead of test. This still only generated 66% coverage for the file though so still a little confused.

Sebb

Sebb

This coverage does not make sense.
Which cover-module are you using? I use GitHub - parroty/excoveralls: Coverage report tool for Elixir with coveralls.io integration. · GitHub - which I can recommend.

CherryPoppins

CherryPoppins OP

cool, so I setup coveralls and that seems to be picking everything up correctly. just have to figure out how to get it to show me the lines missed.

Sebb

Sebb

See GitHub - parroty/excoveralls: Coverage report tool for Elixir with coveralls.io integration. · GitHub
If you want more insight I recommend a tool like codecov.io. Codecov can easily be hooked into CI, eg github actions:

- name: mix coveralls.json
  run: mix coveralls.json
- name: Upload coverage to Codecov
  uses: codecov/codecov-action@v2
  with:
    token: ${{ secrets.CODECOV_TOKEN }}
    directory: ./coverage/reports/
    fail_ci_if_error: true
    files: ./cover/excoveralls.json
    name: codecov-myproject
CherryPoppins

CherryPoppins OP

awesome, thanks for all the help!

— All posts loaded —

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
roeland
Kia ora, We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
Onor.io
I have what I’ve heard referred to as a “lookup table” in my database. This is a way of assigning codes to common values. One common lo...
New
jaybe78
Hello, I’m developing a online persistent chat system (what’s app) like using elixir/dynamodb/aws for a mobile app(flutter). The diffic...
New
Trolleger
What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM...
New

Other Trending Topics Top

garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews