blisscs
Question on :application.get_key(:my_app, :module)
As I understand :application.get_key(:my_app, :module) lists all of compiled modules under the :my_app application. I have a question when we create a module during runtime. The created module is not listed as a result of running application.get_key(:my_app, :module)
Please see the case before -
defmodule MyAppTest do
use ExUnit.Case
doctest MyApp
test "get modules" do
defmodule MyApp.A do
def a(), do: "a"
end
assert "a" == MyApp.A.a() # This one works
{:ok, modules} = :application.get_key(:my_app, :modules)
assert MyApp.A in modules # Why this line is failing. How can I get all the compiled modules at this time?
after
purge(MyApp.A)
end
defp purge(module) do
:code.delete(module)
:code.purge(module)
end
end
Are there any other functions to fetch for the compiled modules at the current time?
I am doing as above, I only want this module during the test time and only for this specific test, i.e, I don’t want this module to be available during running other tests.
Most Liked
NobbZ
The list returned from :application.get_key/2 is compiled from the applications manifest, which again is created by mix.
Runtime created modules do not belong to any application, and as far as I remember there is no way to get a list of them.
Though you might be able to use :code.all_loaded/0 to get a list of all currently loaded modules.
Last Post!
NobbZ
Enable embedded mode in your mix.exs and try again. The default is to lazy load modules. Embedded mode will load all modules at VM boot time.
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









